[INFO] fetching crate nautilus-model 0.54.0...
[INFO] testing nautilus-model-0.54.0 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate nautilus-model 0.54.0 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate nautilus-model 0.54.0
[INFO] finished tweaking crates.io crate nautilus-model 0.54.0
[INFO] tweaked toml for crates.io crate nautilus-model 0.54.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate nautilus-model 0.54.0 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate nautilus-model 0.54.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded testing_table v0.3.0
[INFO] [stderr]   Downloaded tabled_derive v0.11.0
[INFO] [stderr]   Downloaded unicode_names2_generator v1.3.0
[INFO] [stderr]   Downloaded papergrid v0.17.0
[INFO] [stderr]   Downloaded inventory v0.3.22
[INFO] [stderr]   Downloaded is-macro v0.3.7
[INFO] [stderr]   Downloaded iai v0.1.1
[INFO] [stderr]   Downloaded rustpython-parser-vendored v0.4.0
[INFO] [stderr]   Downloaded target-lexicon v0.13.5
[INFO] [stderr]   Downloaded pyo3-build-config v0.28.2
[INFO] [stderr]   Downloaded unic-common v0.9.0
[INFO] [stderr]   Downloaded unic-ucd-ident v0.9.0
[INFO] [stderr]   Downloaded evalexpr v11.3.1
[INFO] [stderr]   Downloaded numpy v0.28.0
[INFO] [stderr]   Downloaded implied-vol v2.0.0
[INFO] [stderr]   Downloaded nautilus-core v0.54.0
[INFO] [stderr]   Downloaded pyo3-macros-backend v0.28.2
[INFO] [stderr]   Downloaded rustpython-parser v0.4.0
[INFO] [stderr]   Downloaded pyo3-stub-gen v0.19.0
[INFO] [stderr]   Downloaded tabled v0.20.0
[INFO] [stderr]   Downloaded pyo3-ffi v0.28.2
[INFO] [stderr]   Downloaded toml v1.0.3+spec-1.1.0
[INFO] [stderr]   Downloaded pyo3-stub-gen-derive v0.19.0
[INFO] [stderr]   Downloaded cbindgen v0.29.2
[INFO] [stderr]   Downloaded rustpython-ast v0.4.0
[INFO] [stderr]   Downloaded unicode_names2 v1.3.0
[INFO] [stderr]   Downloaded unic-char-range v0.9.0
[INFO] [stderr]   Downloaded unic-emoji-char v0.9.0
[INFO] [stderr]   Downloaded pyo3-macros v0.28.2
[INFO] [stderr]   Downloaded lalrpop-util v0.20.2
[INFO] [stderr]   Downloaded rustpython-parser-core v0.4.0
[INFO] [stderr]   Downloaded unic-char-property v0.9.0
[INFO] [stderr]   Downloaded unic-ucd-version v0.9.0
[INFO] [stderr]   Downloaded pyo3 v0.28.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4a230902b059d75b4c96224e0bdceee3505a782d2e7c1510732ebc7a0a736aa9
[INFO] running `Command { std: "docker" "start" "-a" "4a230902b059d75b4c96224e0bdceee3505a782d2e7c1510732ebc7a0a736aa9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a230902b059d75b4c96224e0bdceee3505a782d2e7c1510732ebc7a0a736aa9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a230902b059d75b4c96224e0bdceee3505a782d2e7c1510732ebc7a0a736aa9", kill_on_drop: false }`
[INFO] [stdout] 4a230902b059d75b4c96224e0bdceee3505a782d2e7c1510732ebc7a0a736aa9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 93f0bee75787735f98922006703515217d3c602febf3c82dc13afe0627489d72
[INFO] running `Command { std: "docker" "start" "-a" "93f0bee75787735f98922006703515217d3c602febf3c82dc13afe0627489d72", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling rust_decimal v1.40.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rmp v0.8.15
[INFO] [stderr]    Compiling value-bag v1.12.0
[INFO] [stderr]    Compiling implied-vol v2.0.0
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]    Compiling papergrid v0.17.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling toml v1.0.3+spec-1.1.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling bon-macros v3.9.0
[INFO] [stderr]    Compiling rmp-serde v1.3.1
[INFO] [stderr]    Compiling tabled_derive v0.11.0
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling nautilus-core v0.54.0
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling ustr v1.1.0
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling nautilus-model v0.54.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling derive_builder v0.20.2
[INFO] [stderr]    Compiling rust_decimal_macros v1.40.0
[INFO] [stderr]    Compiling evalexpr v11.3.1
[INFO] [stderr]    Compiling tabled v0.20.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling bon v3.9.0
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s
[INFO] running `Command { std: "docker" "inspect" "93f0bee75787735f98922006703515217d3c602febf3c82dc13afe0627489d72", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93f0bee75787735f98922006703515217d3c602febf3c82dc13afe0627489d72", kill_on_drop: false }`
[INFO] [stdout] 93f0bee75787735f98922006703515217d3c602febf3c82dc13afe0627489d72
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5390f10a716ff406fa9374564dd4d2f0a6e659d87433b5c0fe214fd799d1661a
[INFO] running `Command { std: "docker" "start" "-a" "5390f10a716ff406fa9374564dd4d2f0a6e659d87433b5c0fe214fd799d1661a", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling toml v1.0.3+spec-1.1.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rstest_macros v0.26.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling ustr v1.1.0
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling nautilus-core v0.54.0
[INFO] [stderr]    Compiling nautilus-model v0.54.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling iai v0.1.1
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling rstest v0.26.1
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 42s
[INFO] running `Command { std: "docker" "inspect" "5390f10a716ff406fa9374564dd4d2f0a6e659d87433b5c0fe214fd799d1661a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5390f10a716ff406fa9374564dd4d2f0a6e659d87433b5c0fe214fd799d1661a", kill_on_drop: false }`
[INFO] [stdout] 5390f10a716ff406fa9374564dd4d2f0a6e659d87433b5c0fe214fd799d1661a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 997f62bf6aae00f4b532e92dfde7f8ce608bc7d406437e1b3377218de46a2fca
[INFO] running `Command { std: "docker" "start" "-a" "997f62bf6aae00f4b532e92dfde7f8ce608bc7d406437e1b3377218de46a2fca", kill_on_drop: false }`
[INFO] [stderr]    Compiling nautilus-model v0.54.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 54.68s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nautilus_model-28fb3c43fdfb50f3)
[INFO] [stdout] 
[INFO] [stdout] running 1930 tests
[INFO] [stdout] test accounts::cash::tests::test_calculate_balance_locked_buy ... ok
[INFO] [stdout] test accounts::cash::tests::test_calculate_balance_locked_sell_no_base_currency ... ok
[INFO] [stdout] test accounts::cash::tests::test_apply_given_new_state_event_updates_correctly ... ok
[INFO] [stdout] test accounts::cash::tests::test_calculate_balance_locked_sell ... ok
[INFO] [stdout] test accounts::cash::tests::test_calculate_commission_for_inverse_maker_crypto::case_2 ... ok
[INFO] [stdout] test accounts::cash::tests::test_calculate_commission_for_taker_fx ... ok
[INFO] [stdout] test accounts::cash::tests::test_calculate_commission_fx_taker ... ok
[INFO] [stdout] test accounts::cash::tests::test_apply_clears_per_instrument_locks ... ok
[INFO] [stdout] test accounts::cash::tests::test_apply_returns_error_when_negative_balance_and_borrowing_disabled ... ok
[INFO] [stdout] test accounts::cash::tests::test_calculate_commission_crypto_taker ... ok
[INFO] [stdout] test accounts::cash::tests::test_clear_balance_locked_removes_all_currencies_for_instrument ... ok
[INFO] [stdout] test accounts::cash::tests::test_calculate_pnls_for_single_currency_cash_account ... ok
[INFO] [stdout] test accounts::cash::tests::test_display ... ok
[INFO] [stdout] test accounts::cash::tests::test_calculate_pnls_for_multi_currency_cash_account_btcusdt ... ok
[INFO] [stdout] test accounts::cash::tests::test_instantiate_multi_asset_cash_account ... ok
[INFO] [stdout] test accounts::cash::tests::test_apply_succeeds_when_negative_balance_and_borrowing_enabled ... ok
[INFO] [stdout] test accounts::cash::tests::test_clear_balance_locked_only_removes_target_instrument ... ok
[INFO] [stdout] test accounts::cash::tests::test_recalculate_balance_no_clamp_when_total_negative_borrowing ... ok
[INFO] [stdout] test accounts::cash::tests::test_instantiate_single_asset_cash_account ... ok
[INFO] [stdout] test accounts::cash::tests::test_update_balance_locked_per_instrument_currency ... ok
[INFO] [stdout] test accounts::cash::tests::test_recalculate_balance_sums_multiple_instrument_locks ... ok
[INFO] [stdout] test accounts::cash::tests::test_recalculate_balance_clamps_when_locked_exceeds_total ... ok
[INFO] [stdout] test accounts::cash::tests::test_calculate_commission_for_inverse_maker_crypto::case_1 ... ok
[INFO] [stdout] test accounts::margin::tests::test_base_account_properties ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_margin_init_with_leverage ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_margin_maintenance_with_leverage_fx_instrument ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_margin_maintenance_with_leverage_inverse_instrument ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_margin_init_with_no_leverage_for_inverse ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_pnls_with_same_side_fill_returns_empty ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_pnls_for_option_sell_realizes_premium ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_pnls_for_binary_option ... ok
[INFO] [stdout] test accounts::margin::tests::test_clear_margin ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_pnls_github_issue_2657 ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_pnls_for_option_buy_realizes_premium ... ok
[INFO] [stdout] test accounts::margin::tests::test_is_unleveraged_with_default_leverage_of_1_returns_true ... ok
[INFO] [stdout] test accounts::margin::tests::test_is_unleveraged_with_no_leverage_returns_true ... ok
[INFO] [stdout] test accounts::margin::tests::test_get_leverage_default_leverage ... ok
[INFO] [stdout] test accounts::margin::tests::test_is_unleveraged_with_leverage_returns_false ... ok
[INFO] [stdout] test accounts::margin::tests::test_set_default_leverage ... ok
[INFO] [stdout] test accounts::margin::tests::test_display ... ok
[INFO] [stdout] test accounts::margin::tests::test_margin_accessor ... ok
[INFO] [stdout] test accounts::margin::tests::test_update_margin_maintenance ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_margin_maintenance_with_no_leverage ... ok
[INFO] [stdout] test accounts::margin::tests::test_set_leverage ... ok
[INFO] [stdout] test accounts::margin::tests::test_update_margin_init ... ok
[INFO] [stdout] test accounts::margin::tests::test_calculate_margin_init_with_default_leverage ... ok
[INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_1 ... ok
[INFO] [stdout] test accounts::margin::tests::test_set_leverage_zero_panics - should panic ... ok
[INFO] [stdout] test accounts::margin::tests::test_set_default_leverage_zero_panics - should panic ... ok
[INFO] [stdout] test data::bar::tests::test_bar_new ... ok
[INFO] [stdout] test accounts::margin::tests::test_set_leverage_negative_panics - should panic ... ok
[INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_2 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_equality ... ok
[INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_3 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_4 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_5 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_spec_string_reprs ... ok
[INFO] [stdout] test data::bar::tests::test_bar_specification_new_invalid ... ok
[INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_6 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_1 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_2 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_specification_new_checked_with_invalid_step_panics - should panic ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_from_str_with_utf8_symbol ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_3 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_id_spec_key_ignores_aggregation_source ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_equality ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_4 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_6 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_comparison ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_01 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_0 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_parse_valid ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_02 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_03 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_composite_parse_valid ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_5 ... ok
[INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_7 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_06 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_07 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_10 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_11 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_12 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_14 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_15 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_04 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_16 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_08 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_13 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_01 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_02 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_04 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_06 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_03 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_05 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_17 - should panic ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_07 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_08 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_09 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_10 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_09 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_14 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_05 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_11 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_16 ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_17 - should panic ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_01_millisecond ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_02_millisecond ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_04_second ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_03_second ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_05_second ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_06_second ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_08_minute ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_12 ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_10_hour ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_13 ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_11_hour ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_07_minute ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_09_minute ... ok
[INFO] [stdout] test data::bet::tests::test_as_bet ... ok
[INFO] [stdout] test data::bar::tests::test_json_serialization ... ok
[INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_12_day ... ok
[INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_15 ... ok
[INFO] [stdout] test data::bet::tests::test_bet_exposure_lay ... ok
[INFO] [stdout] test data::bet::tests::test_bet_liability_back ... ok
[INFO] [stdout] test data::bar::tests::test_msgpack_serialization ... ok
[INFO] [stdout] test data::bet::tests::test_bet_position_initialization ... ok
[INFO] [stdout] test data::bet::tests::test_bet_position_side_none ... ok
[INFO] [stdout] test data::bet::tests::test_bet_profit_back ... ok
[INFO] [stdout] test data::bet::tests::test_bet_position_side_lay ... ok
[INFO] [stdout] test data::bet::tests::test_bet_profit_lay ... ok
[INFO] [stdout] test data::bet::tests::test_bet_position_side_back ... ok
[INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_mixed_bets ... ok
[INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_multiple_bets ... ok
[INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_no_bets ... ok
[INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_single_lay_bet ... ok
[INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_zero_outcome ... ok
[INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_single_back_bet ... ok
[INFO] [stdout] test data::bet::tests::test_display_bet ... ok
[INFO] [stdout] test data::bet::tests::test_flattening_bet_lay ... ok
[INFO] [stdout] test data::bet::tests::test_flattening_bet_back_hack ... ok
[INFO] [stdout] test data::bet::tests::test_display_bet_position ... ok
[INFO] [stdout] test data::bet::tests::test_flattening_bet_back_profit ... ok
[INFO] [stdout] test data::bet::tests::test_bet_creation ... ok
[INFO] [stdout] test data::bet::tests::test_bet_exposure_back ... ok
[INFO] [stdout] test data::bet::tests::test_bet_liability_lay ... ok
[INFO] [stdout] test data::bet::tests::test_hedging_bet_lay ... ok
[INFO] [stdout] test data::bet::tests::test_hedging_stake_back ... ok
[INFO] [stdout] test data::bet::tests::test_inverse_probability_to_bet ... ok
[INFO] [stdout] test data::bet::tests::test_inverse_probability_to_bet_example2 ... ok
[INFO] [stdout] test data::bet::tests::test_outcome_win_payoff_back ... ok
[INFO] [stdout] test data::bet::tests::test_open_position_realized_unrealized ... ok
[INFO] [stdout] test data::bet::tests::test_outcome_lose_payoff_back ... ok
[INFO] [stdout] test data::bet::tests::test_position_flat ... ok
[INFO] [stdout] test data::bet::tests::test_position_increase_back ... ok
[INFO] [stdout] test data::bet::tests::test_position_increase_lay ... ok
[INFO] [stdout] test data::bet::tests::test_probability_to_bet_back_high_prob ... ok
[INFO] [stdout] test data::bet::tests::test_position_lay_then_back ... ok
[INFO] [stdout] test data::bet::tests::test_probability_to_bet_back_low_prob ... ok
[INFO] [stdout] test data::bet::tests::test_probability_to_bet_back_simple ... ok
[INFO] [stdout] test data::bet::tests::test_probability_to_bet_sell ... ok
[INFO] [stdout] test data::bet::tests::test_realized_pnl_flattening ... ok
[INFO] [stdout] test data::bet::tests::test_realized_pnl_flipping ... ok
[INFO] [stdout] test data::bet::tests::test_realized_pnl_single_side ... ok
[INFO] [stdout] test data::bet::tests::test_reset_position ... ok
[INFO] [stdout] test data::bet::tests::test_outcome_win_payoff_lay ... ok
[INFO] [stdout] test data::bet::tests::test_realized_pnl_partial_close ... ok
[INFO] [stdout] test data::bet::tests::test_realized_pnl_open_position ... ok
[INFO] [stdout] test data::bet::tests::test_outcome_lose_payoff_lay ... ok
[INFO] [stdout] test data::bet::tests::test_total_pnl ... ok
[INFO] [stdout] test data::bet::tests::test_total_pnl_with_pnl ... ok
[INFO] [stdout] test data::bet::tests::test_position_back_then_lay ... ok
[INFO] [stdout] test data::bet::tests::test_unrealized_no_position ... ok
[INFO] [stdout] test data::bet::tests::test_unrealized_pnl_negative ... ok
[INFO] [stdout] test data::bet::tests::test_position_flip ... ok
[INFO] [stdout] test data::bet::tests::test_unrealized_pnl_positive ... ok
[INFO] [stdout] test data::black_scholes::tests::test_compute_greeks_accuracy_vs_exact ... ok
[INFO] [stdout] test data::black_scholes::tests::test_compute_iv_and_greeks_deep_itm_otm ... ok
[INFO] [stdout] test data::black_scholes::tests::test_accuracy_1e7 ... ok
[INFO] [stdout] test data::black_scholes::tests::test_compute_iv_and_greeks_halley_accuracy ... ok
[INFO] [stdout] test data::close::tests::test_to_string ... ok
[INFO] [stdout] test data::close::tests::test_json_serialization ... ok
[INFO] [stdout] test data::black_scholes::tests::test_print_halley_iv ... ok
[INFO] [stdout] test data::delta::tests::test_get_metadata ... ok
[INFO] [stdout] test data::close::tests::test_msgpack_serialization ... ok
[INFO] [stdout] test data::delta::tests::test_get_fields ... ok
[INFO] [stdout] test data::close::tests::test_new ... ok
[INFO] [stdout] test data::delta::tests::test_new ... ok
[INFO] [stdout] test data::delta::tests::test_json_serialization ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_clear ... ok
[INFO] [stdout] test data::delta::tests::test_msgpack_serialization ... ok
[INFO] [stdout] test data::bet::tests::test_from_liability_panics_on_back_side - should panic ... ok
[INFO] [stdout] test data::delta::tests::test_clear ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_display ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_hash_different_deltas ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_new ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_hash ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_new_checked_delete_with_zero_size_ok ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_new_checked_valid ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_new_checked_with_zero_size_error ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_has_ts_init ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_serialization ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_actions::case_1 ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_actions::case_2 ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_actions::case_3 ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_clone ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_debug ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_partial_eq ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_actions::case_4 ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_sides::case_1 ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_with_max_values ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_clone ... ok
[INFO] [stdout] test data::deltas::tests::test_display_with_stub ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_with_zero_timestamps ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_sides::case_2 ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_deref ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_debug ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_clone ... ok
[INFO] [stdout] test data::deltas::tests::test_new ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_display ... ok
[INFO] [stdout] test data::delta::tests::test_order_book_delta_new_with_zero_size_panics ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_display_format ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_has_ts_init ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_deref_mut ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_into_inner ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_new ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_hash_different_objects ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_hash_uses_instrument_id_and_sequence ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_new ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_debug ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_new_checked_valid ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_new_checked_empty_deltas ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_different_action_types ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_serialization ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_large_number_of_deltas ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_uses_last_delta_properties ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_serialization ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_with_stub ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_single_delta ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_max_values ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_zero_sequence ... ok
[INFO] [stdout] test data::depth::tests::test_display ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_array_indexing ... ok
[INFO] [stdout] test data::depth::tests::test_new ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_bid_ask_ordering ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_copy ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_clone ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_debug ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_different_instruments ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_display_format ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_display ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_empty_values ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_fixed_array_sizes ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_eq_consistency ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_get_metadata ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_get_fields_order ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_max_values ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_get_fields ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_hash ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_has_ts_init ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_hash_different_objects ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_new ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_new_with_all_parameters ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_partial_eq ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_serializable_trait ... ok
[INFO] [stdout] test data::funding::tests::test_funding_rate_update_eq_hash ... ok
[INFO] [stdout] test data::funding::tests::test_funding_rate_update_display ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_with_stub ... ok
[INFO] [stdout] test data::funding::tests::test_funding_rate_update_get_ts_init ... ok
[INFO] [stdout] test data::funding::tests::test_funding_rate_update_new ... ok
[INFO] [stdout] test data::funding::tests::test_funding_rate_update_msgpack_serialization ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_realistic_forex_spread ... ok
[INFO] [stdout] test data::depth::tests::test_order_book_depth10_serialization ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_basic_put ... ok
[INFO] [stdout] test data::funding::tests::test_funding_rate_update_json_serialization ... ok
[INFO] [stdout] test data::funding::tests::test_funding_rate_update_new_with_optional_fields ... ok
[INFO] [stdout] test data::funding::tests::test_funding_rate_update_serde_json ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_deep_otm_call ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_high_volatility ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_deep_itm_call ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_result_clone_and_copy ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_basic_call ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_result_creation ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_result_debug ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_target_price_refinement_put ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_target_price_refinement ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_1_true::vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_extreme_values ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_1_true::vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_1_true::vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_1_true::vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_1_true::vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_1_true::vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_2_false::vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_1_true::vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_1_true::vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_2_false::vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_2_false::vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_2_false::vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_2_false::vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_1_true::vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_2_false::vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_2_false::vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_2_false::vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_1_true::vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_1_true::vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_1_90_0::is_call_2_false::vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_1_true::vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_1_true::vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_2_false::vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_2_false::vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_2_false::vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_2_false::vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_2_false::vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::deltas::tests::test_order_book_deltas_new_empty_deltas_panics - should panic ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_1_true::vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_1_true::vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_2_false::vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_1_true::vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_1_true::vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_1_true::vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_1_true::vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_2_false::vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_1_true::vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_1_true::vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_2_false::vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_1_true::vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_2_100_0::is_call_2_false::vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_1_true::vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_2_false::vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_2_false::vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_1_true::vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_1_true::vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_1_true::vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_2_false::vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_1_true::vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_2_false::vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_2_false::vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_2_false::vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_2_false::vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_2_false::vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_zero_time ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_accuracy_put ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_data_default ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_data_display ... ok
[INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_vs_exact::spot_3_110_0::is_call_2_false::vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_data_clone ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_accuracy_call ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_data_has_ts_init ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_data_multiplication ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_data_new ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_data_put_option ... ok
[INFO] [stdout] test data::greeks::tests::test_greeks_data_from_delta ... ok
[INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_addition ... ok
[INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_default ... ok
[INFO] [stdout] test data::greeks::tests::test_imply_vol_and_greeks_accuracy_call ... ok
[INFO] [stdout] test data::greeks::tests::test_imply_vol_and_greeks_accuracy_put ... ok
[INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_display ... ok
[INFO] [stdout] test data::greeks::tests::test_imply_vol_basic ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_1_true::target_vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_from_greeks_data ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_1_true::target_vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_has_ts_init ... ok
[INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_new ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_1_true::target_vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_1_true::target_vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_imply_vol_and_greeks_result_creation ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_1_true::target_vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_1_true::target_vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_1_true::target_vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_1_true::target_vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_1_true::target_vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_2_false::target_vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_2_false::target_vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_2_false::target_vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_2_false::target_vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_2_false::target_vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_2_false::target_vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_2_false::target_vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_1_true::target_vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_2_false::target_vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_1_true::target_vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_1_true::target_vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_1_90_0::is_call_2_false::target_vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_1_true::target_vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_1_true::target_vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_1_true::target_vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_1_true::target_vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_1_true::target_vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_2_false::target_vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_2_false::target_vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_2_false::target_vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_1_true::target_vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_2_false::target_vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_2_false::target_vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_2_false::target_vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_2_false::target_vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_1_true::target_vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_1_true::target_vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_2_false::target_vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_1_true::target_vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_1_true::target_vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_2_false::target_vol_1_0_15::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_1_true::target_vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_1_true::target_vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_1_true::target_vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_2_100_0::is_call_2_false::target_vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_1_true::target_vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_2_false::target_vol_1_0_15::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_2_false::target_vol_1_0_15::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_1_true::target_vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_2_false::target_vol_2_0_25::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_2_false::target_vol_2_0_25::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_yield_curve_data_default ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_2_false::target_vol_3_0_5::t_2_0_25 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_2_false::target_vol_2_0_25::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_2_false::target_vol_3_0_5::t_1_0_01 ... ok
[INFO] [stdout] test data::greeks::tests::test_yield_curve_data_get_rate_interpolation ... ok
[INFO] [stdout] test data::greeks::tests::test_refine_vol_and_greeks_vs_imply_vol_and_greeks::spot_3_110_0::is_call_2_false::target_vol_3_0_5::t_3_2_0 ... ok
[INFO] [stdout] test data::greeks::tests::test_yield_curve_data_clone ... ok
[INFO] [stdout] test data::greeks::tests::test_yield_curve_data_get_rate_single_point ... ok
[INFO] [stdout] test data::greeks::tests::test_yield_curve_data_display ... ok
[INFO] [stdout] test data::order::tests::test_debug ... ok
[INFO] [stdout] test data::order::tests::test_display ... ok
[INFO] [stdout] test data::order::tests::test_signed_size ... ok
[INFO] [stdout] test data::order::tests::test_to_book_price ... ok
[INFO] [stdout] test data::order::tests::test_new ... ok
[INFO] [stdout] test data::greeks::tests::test_yield_curve_data_has_ts_init ... ok
[INFO] [stdout] test data::prices::tests::test_index_price_update_display ... ok
[INFO] [stdout] test data::greeks::tests::test_yield_curve_data_new ... ok
[INFO] [stdout] test data::prices::tests::test_index_price_update_eq_hash ... ok
[INFO] [stdout] test data::prices::tests::test_index_price_update_get_ts_init ... ok
[INFO] [stdout] test data::order::tests::test_exposure ... ok
[INFO] [stdout] test data::prices::tests::test_index_price_update_new ... ok
[INFO] [stdout] test data::prices::tests::test_index_price_update_msgpack_serialization ... ok
[INFO] [stdout] test data::prices::tests::test_mark_price_update_get_ts_init ... ok
[INFO] [stdout] test data::prices::tests::test_mark_price_update_display ... ok
[INFO] [stdout] test data::prices::tests::test_index_price_update_serde_json ... ok
[INFO] [stdout] test data::prices::tests::test_mark_price_update_eq_hash ... ok
[INFO] [stdout] test data::prices::tests::test_mark_price_update_clone ... ok
[INFO] [stdout] test data::prices::tests::test_mark_price_update_json_serialization ... ok
[INFO] [stdout] test data::prices::tests::test_index_price_update_json_serialization ... ok
[INFO] [stdout] test data::prices::tests::test_mark_price_update_new ... ok
[INFO] [stdout] test data::prices::tests::test_mark_price_update_msgpack_serialization ... ok
[INFO] [stdout] test data::prices::tests::test_mark_price_update_serde_json ... ok
[INFO] [stdout] test data::quote::tests::test_extract_mid_price_precision ... ok
[INFO] [stdout] test data::quote::tests::test_extract_size::case_1 ... ok
[INFO] [stdout] test data::quote::tests::test_extract_price::case_2 ... ok
[INFO] [stdout] test data::quote::tests::test_extract_size::case_2 ... ok
[INFO] [stdout] test data::quote::tests::test_get_metadata ... ok
[INFO] [stdout] test data::quote::tests::test_extract_price::case_1 ... ok
[INFO] [stdout] test data::quote::tests::test_get_fields ... ok
[INFO] [stdout] test data::quote::tests::test_quote_tick_builder ... ok
[INFO] [stdout] test data::quote::tests::test_extract_price::case_3 ... ok
[INFO] [stdout] test data::quote::tests::test_extract_size::case_3 ... ok
[INFO] [stdout] test data::quote::tests::test_quote_tick_display ... ok
[INFO] [stdout] test data::quote::tests::test_quote_tick_has_ts_init ... ok
[INFO] [stdout] test data::quote::tests::test_quote_tick_new ... ok
[INFO] [stdout] test data::quote::tests::test_quote_tick_new_checked_valid ... ok
[INFO] [stdout] test data::quote::tests::test_quote_tick_with_max_values ... ok
[INFO] [stdout] test data::quote::tests::test_to_string ... ok
[INFO] [stdout] test data::status::tests::test_get_metadata ... ok
[INFO] [stdout] test data::quote::tests::test_quote_tick_with_zero_prices ... ok
[INFO] [stdout] test data::status::tests::test_get_metadata_different_instruments ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_builder ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_builder_minimal ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_clone ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_debug ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_copy ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_display ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_display_different_actions ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_eq_consistency ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_has_ts_init_different_values ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_display_format ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_has_ts_init ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_hash ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_new_minimal ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_partial_eq ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_hash_different_objects ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_partial_eq_different_fields ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_new ... ok
[INFO] [stdout] test data::quote::tests::test_extract_price_invalid_type - should panic ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_serialization ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_02 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_03 ... ok
[INFO] [stdout] test data::quote::tests::test_extract_size_invalid_type - should panic ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_01 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_serialization_with_optional_fields ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_04 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_05 ... ok
[INFO] [stdout] test data::quote::tests::test_quote_tick_new_checked_with_precision_mismatch_error ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_09 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_08 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_11 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_10 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_06 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_12 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_07 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_16 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_empty_reason ... ok
[INFO] [stdout] test data::quote::tests::test_quote_tick_new_with_precision_mismatch_panics - should panic ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_max_timestamps ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_13 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_15 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_mixed_optional_fields ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_short_sell_restriction ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_14 ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_halt_flags ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_trading_flags ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_zero_timestamps ... ok
[INFO] [stdout] test data::status::tests::test_instrument_status_with_long_reason ... ok
[INFO] [stdout] test data::status::tests::test_to_string ... ok
[INFO] [stdout] test data::tests::test_data_type_creation_without_metadata ... ok
[INFO] [stdout] test data::tests::test_data_type_creation_with_metadata ... ok
[INFO] [stdout] test data::tests::test_data_type_debug ... ok
[INFO] [stdout] test data::tests::test_data_type_display ... ok
[INFO] [stdout] test data::tests::test_data_type_inequality ... ok
[INFO] [stdout] test data::tests::test_data_type_hash ... ok
[INFO] [stdout] test data::tests::test_data_type_equality ... ok
[INFO] [stdout] test data::tests::test_parse_end_from_metadata ... ok
[INFO] [stdout] test data::tests::test_data_type_ordering ... ok
[INFO] [stdout] test data::tests::test_parse_venue_from_metadata ... ok
[INFO] [stdout] test data::trade::tests::test_get_fields ... ok
[INFO] [stdout] test data::trade::tests::test_to_string ... ok
[INFO] [stdout] test data::tests::test_parse_instrument_id_from_metadata ... ok
[INFO] [stdout] test data::trade::tests::test_get_metadata ... ok
[INFO] [stdout] test data::tests::test_parse_limit_from_metadata ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_builder ... ok
[INFO] [stdout] test data::tests::test_parse_start_from_metadata ... ok
[INFO] [stdout] test data::trade::tests::test_deserialize_raw_string ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_display ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_has_ts_init ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_hash ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_hash_different_trades ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_new_checked_with_zero_size_error ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_partial_eq ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_new ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_clone ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_debug ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_serialization ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_new_checked_valid ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_with_different_aggressor_sides::case_3 ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_with_max_values ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_with_different_trade_ids ... ok
[INFO] [stdout] test events::account::state::tests::test_display_cash_account_state ... ok
[INFO] [stdout] test events::account::state::tests::test_equality ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_with_different_aggressor_sides::case_1 ... ok
[INFO] [stdout] test events::account::state::tests::test_display_margin_account_state ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_with_different_aggressor_sides::case_2 ... ok
[INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_different_balance_currencies ... ok
[INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_different_balance_amounts ... ok
[INFO] [stdout] test data::trade::tests::test_trade_tick_with_zero_price ... ok
[INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_missing_margin ... ok
[INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_identical ... ok
[INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_with_multiple_balances_and_margins ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_clone ... ok
[INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_missing_balance ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_different_accounts ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_display ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_debug ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_different_venues ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_default ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_order_event_trait ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_new ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_partial_eq ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_serialization ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_new_with_reconciliation ... ok
[INFO] [stdout] test events::order::denied::tests::test_order_denied_display ... ok
[INFO] [stdout] test events::order::emulated::tests::test_order_emulated ... ok
[INFO] [stdout] test events::order::expired::tests::test_order_cancel_rejected ... ok
[INFO] [stdout] test events::order::accepted::tests::test_order_accepted_timestamps ... ok
[INFO] [stdout] test events::order::cancel_rejected::tests::test_order_cancel_rejected ... ok
[INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_different_margin_amounts ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_different_liquidity_sides ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_clone ... ok
[INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_different_margin_instruments ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_different_currencies ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_debug ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_different_order_types ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_default ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_different_prices_and_quantities ... ok
[INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_with_empty_collections ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_is_buy ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_new ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_is_sell ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_order_event_trait ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_timestamps ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_partial_eq ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_display ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_without_commission ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_with_reconciliation ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_specified_side ... ok
[INFO] [stdout] test events::order::initialized::test::test_order_initialized ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_without_position_id ... ok
[INFO] [stdout] test events::order::modify_rejected::tests::test_order_modified_rejected ... ok
[INFO] [stdout] test events::order::filled::tests::test_order_filled_serialization ... ok
[INFO] [stdout] test events::order::pending_cancel::tests::test_order_pending_cancel_display ... ok
[INFO] [stdout] test events::order::pending_update::test::test_order_pending_update_display ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_clone ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_different_instruments ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_display ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_different_accounts ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_debug ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_different_reasons ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_new ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_default ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_new_with_reconciliation ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_timestamps ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_order_event_trait ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_with_due_post_only ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_partial_eq ... ok
[INFO] [stdout] test events::order::rejected::tests::test_order_rejected_serialization ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_rejected_display ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_clone ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_debug ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_different_instruments ... ok
[INFO] [stdout] test events::order::released::tests::test_order_released_display ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_default ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_different_strategies ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_new ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_order_event_trait ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_partial_eq ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_timestamps ... ok
[INFO] [stdout] test events::position::adjusted::tests::test_position_adjustment_commission_new ... ok
[INFO] [stdout] test events::order::updated::tests::test_order_updated_display ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_serialization ... ok
[INFO] [stdout] test events::order::submitted::tests::test_order_submitted_different_traders ... ok
[INFO] [stdout] test events::order::triggered::tests::test_order_triggered_display ... ok
[INFO] [stdout] test events::position::adjusted::tests::test_position_adjustment_different_types ... ok
[INFO] [stdout] test events::position::adjusted::tests::test_position_adjustment_debug ... ok
[INFO] [stdout] test events::position::adjusted::tests::test_position_adjustment_funding_new ... ok
[INFO] [stdout] test events::position::adjusted::tests::test_position_adjustment_partial_eq ... ok
[INFO] [stdout] test events::position::adjusted::tests::test_position_adjustment_clone ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_create ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_clone ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_different_sides ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_new ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_debug ... ok
[INFO] [stdout] test events::position::adjusted::tests::test_position_adjustment_timestamps ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_partial_eq ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_quantities_relationship ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_with_closing_prices ... ok
[INFO] [stdout] test events::position::adjusted::tests::test_position_adjustment_serialization ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_timestamps ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_with_zero_unrealized_pnl ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_with_pnl ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_clone ... ok
[INFO] [stdout] test events::position::changed::tests::test_position_changed_peak_quantity ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_create ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_duration ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_entry_sides ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_new ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_flat_position ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_partial_eq ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_loss_scenario ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_timestamps ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_debug ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_without_closing_order_id ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_peak_quantity ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_with_closing_order_id ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_prices ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_with_realized_pnl ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_different_currencies ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_create ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_prices ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_new ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_debug ... ok
[INFO] [stdout] test events::position::closed::tests::test_position_closed_without_ts_closed ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_timestamps ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_with_different_sides ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_quantities ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_different_currencies ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_clone ... ok
[INFO] [stdout] test events::position::opened::tests::test_position_opened_partial_eq ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_debug ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_from_with_no_unrealized_pnl ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_clone ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_new ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_quantities ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_partial_eq ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_commissions ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_closing_data ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_different_currencies ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_serialization ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_without_base_currency ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_timestamps ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_duration ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_pnl_values ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_without_closing_data ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_empty_commissions ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_without_pnl_values ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_without_duration ... ok
[INFO] [stdout] test events::position::tests::test_position_event_changed_account_id ... ok
[INFO] [stdout] test events::position::tests::test_position_event_changed_instrument_id ... ok
[INFO] [stdout] test events::position::tests::test_position_event_opened_account_id ... ok
[INFO] [stdout] test events::position::tests::test_position_event_closed_account_id ... ok
[INFO] [stdout] test events::position::tests::test_position_event_debug_formatting ... ok
[INFO] [stdout] test events::position::tests::test_position_event_closed_instrument_id ... ok
[INFO] [stdout] test events::position::tests::test_position_event_enum_variants ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_get_issuer ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_different_position_sides ... ok
[INFO] [stdout] test events::position::tests::test_position_event_opened_instrument_id ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_get_issuers_id ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_account_id_new_missing_hyphen - should panic ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_account_id_fmt ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_new_checked_with_empty_issuer_returns_error ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::client_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::client_order_id::tests::test_optional_ustr_to_vec_client_order_ids ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_account_id_new_invalid_string - should panic ... ok
[INFO] [stdout] test identifiers::client_order_id::tests::test_optional_vec_client_order_ids_to_ustr ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_new_checked_with_empty_account_returns_error ... ok
[INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_from ... ok
[INFO] [stdout] test identifiers::client_order_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::component_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::instrument_id::tests::test_instrument_id_parse_success ... ok
[INFO] [stdout] test identifiers::instrument_id::tests::test_instrument_id_from_str_with_utf8_symbol ... ok
[INFO] [stdout] test identifiers::exec_algorithm_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_new_with_empty_account_panics - should panic ... ok
[INFO] [stdout] test identifiers::instrument_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::account_id::tests::test_new_with_empty_issuer_panics - should panic ... ok
[INFO] [stdout] test identifiers::order_list_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::position_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::strategy_id::tests::test_get_external ... ok
[INFO] [stdout] test identifiers::strategy_id::tests::test_get_tag ... ok
[INFO] [stdout] test identifiers::instrument_id::tests::test_instrument_id_parse_failure_no_dot - should panic ... ok
[INFO] [stdout] test identifiers::strategy_id::tests::test_get_tag_external ... ok
[INFO] [stdout] test identifiers::strategy_id::tests::test_is_external ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_1 ... ok
[INFO] [stdout] test identifiers::strategy_id::tests::test_new_with_empty_tag_panics - should panic ... ok
[INFO] [stdout] test identifiers::strategy_id::tests::test_new_checked_with_empty_tag_returns_error ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_2 ... ok
[INFO] [stdout] test identifiers::strategy_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::strategy_id::tests::test_new_with_empty_name_panics - should panic ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_3 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_4 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_1 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_5 ... ok
[INFO] [stdout] test identifiers::strategy_id::tests::test_new_checked_with_empty_name_returns_error ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_4 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_5 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_3 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_2 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_4 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_3 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_5 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_1 ... ok
[INFO] [stdout] test identifiers::actor_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_2 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_with_invalid_values::case_2 ... ok
[INFO] [stdout] test identifiers::symbol::tests::test_symbol_with_invalid_values::case_1 ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_as_str ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_as_cstr ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_valid_bytes::case_1 ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_valid_bytes::case_2 ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_equality ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_valid_bytes::case_4 ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_new_valid ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_valid_bytes::case_3 ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_with_null_terminator_at_max_length ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_ordering ... ok
[INFO] [stdout] test identifiers::trader_id::tests::test_get_tag ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_serialization ... ok
[INFO] [stdout] test identifiers::trader_id::tests::test_new_checked_with_empty_tag_returns_error ... ok
[INFO] [stdout] test identifiers::trader_id::tests::test_new_checked_with_empty_name_returns_error ... ok
[INFO] [stdout] test identifiers::trader_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_exceeds_max_length::case_2 - should panic ... ok
[INFO] [stdout] test identifiers::venue::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_exceeds_max_length::case_1 - should panic ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_bytes_empty - should panic ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_new_invalid_length - should panic ... ok
[INFO] [stdout] test instruments::binary_option::tests::test_equality ... ok
[INFO] [stdout] test instruments::cfd::tests::test_equality ... ok
[INFO] [stdout] test instruments::commodity::tests::test_equality ... ok
[INFO] [stdout] test instruments::betting::tests::test_equality ... ok
[INFO] [stdout] test identifiers::venue_order_id::tests::test_string_reprs ... ok
[INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_single_null_byte - should panic ... ok
[INFO] [stdout] test identifiers::trader_id::tests::test_new_with_empty_tag_panics - should panic ... ok
[INFO] [stdout] test instruments::crypto_future::tests::test_equality ... ok
[INFO] [stdout] test instruments::crypto_option::tests::test_equality ... ok
[INFO] [stdout] test instruments::currency_pair::tests::test_equality ... ok
[INFO] [stdout] test instruments::equity::tests::test_equality ... ok
[INFO] [stdout] test instruments::crypto_perpetual::tests::test_equality ... ok
[INFO] [stdout] test instruments::index_instrument::tests::test_equality ... ok
[INFO] [stdout] test instruments::futures_spread::tests::test_equality ... ok
[INFO] [stdout] test identifiers::trader_id::tests::test_new_with_empty_name_panics - should panic ... ok
[INFO] [stdout] test instruments::perpetual_contract::tests::test_equality ... ok
[INFO] [stdout] test instruments::option_contract::tests::test_equality ... ok
[INFO] [stdout] test instruments::synthetic::tests::test_calculate ... ok
[INFO] [stdout] test instruments::futures_contract::tests::test_equality ... ok
[INFO] [stdout] test instruments::synthetic::tests::test_calculate_from_map ... ok
[INFO] [stdout] test instruments::option_spread::tests::test_equality ... ok
[INFO] [stdout] test instruments::synthetic::tests::test_change_formula ... ok
[INFO] [stdout] test instruments::synthetic::tests::test_hyphenated_instrument_ids_are_sanitized_and_backward_compatible_calculate ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding::case_2_dp1 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding::case_5_dp4 ... ok
[INFO] [stdout] test instruments::synthetic::tests::test_hyphenated_instrument_ids_are_sanitized_calculate ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding::case_7_dp6 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding::case_4_dp3 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding::case_3_dp2 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding::case_8_dp7 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding::case_1_dp0 ... ok
[INFO] [stdout] test instruments::synthetic::tests::test_hyphenated_instrument_ids_are_sanitized_calculate_from_map ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding::case_6_dp5 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding::case_9_dp8 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_2_dp10 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_4_dp12 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_3_dp11 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_1_dp9 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_5_dp13 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_6_dp14 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_8_dp16 ... ok
[INFO] [stdout] test instruments::tests::base_quantity_linear ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_7_dp15 ... ok
[INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_9_dp17 ... ok
[INFO] [stdout] test instruments::tests::check_positive_money_ok ... ok
[INFO] [stdout] test instruments::tests::fixed_tick_boundary ... ok
[INFO] [stdout] test instruments::tests::default_increment_precision ... ok
[INFO] [stdout] test instruments::tests::fixed_tick_scheme_prices ... ok
[INFO] [stdout] test instruments::tests::is_quanto_flag ... ok
[INFO] [stdout] test instruments::tests::fixed_tick_multiple_steps ... ok
[INFO] [stdout] test instruments::tests::make_price_negative_rounding ... ok
[INFO] [stdout] test instruments::tests::check_positive_money_negative - should panic ... ok
[INFO] [stdout] test instruments::tests::make_price_half_even_parity ... ok
[INFO] [stdout] test instruments::tests::make_price_rounding_parity::case_1 ... ok
[INFO] [stdout] test instruments::tests::make_price_rounding_parity::case_2 ... ok
[INFO] [stdout] test instruments::tests::make_price_rounding_parity::case_3 ... ok
[INFO] [stdout] test instruments::tests::fixed_tick_negative - should panic ... ok
[INFO] [stdout] test instruments::tests::check_positive_money_zero - should panic ... ok
[INFO] [stdout] test instruments::tests::make_qty_boundary::case_2 ... ok
[INFO] [stdout] test instruments::tests::make_qty_half_even::case_1 ... ok
[INFO] [stdout] test instruments::tests::make_qty_half_even::case_2 ... ok
[INFO] [stdout] test instruments::tests::make_qty_precision::case_2 ... ok
[INFO] [stdout] test instruments::tests::make_price_with_trailing_zeros_in_increment ... ok
[INFO] [stdout] test instruments::tests::make_qty_precision::case_1 ... ok
[INFO] [stdout] test instruments::tests::make_qty_boundary::case_1 ... ok
[INFO] [stdout] test instruments::tests::make_qty_round_down::case_1 ... ok
[INFO] [stdout] test instruments::tests::make_qty_precision::case_3 ... ok
[INFO] [stdout] test instruments::tests::make_qty_round_down::case_2 ... ok
[INFO] [stdout] test instruments::tests::make_qty_rounding::case_3 ... ok
[INFO] [stdout] test instruments::tests::make_qty_rounding::case_2 ... ok
[INFO] [stdout] test instruments::tests::make_qty_round_down::case_3 ... ok
[INFO] [stdout] test instruments::tests::make_qty_round_down::case_4 ... ok
[INFO] [stdout] test instruments::tests::make_qty_rounding::case_1 ... ok
[INFO] [stdout] test instruments::tests::next_ask_prices_sequence ... ok
[INFO] [stdout] test instruments::tests::make_qty_rounding::case_4 ... ok
[INFO] [stdout] test instruments::tests::next_bid_prices_sequence ... ok
[INFO] [stdout] test instruments::tests::make_qty_rounding::case_5 ... ok
[INFO] [stdout] test instruments::tests::make_qty_rounds_to_zero - should panic ... ok
[INFO] [stdout] test instruments::tests::make_qty_with_trailing_zeros_in_increment ... ok
[INFO] [stdout] test instruments::tests::notional_inverse_base ... ok
[INFO] [stdout] test instruments::tests::notional_quanto ... ok
[INFO] [stdout] test instruments::tests::pyo3_failure_validate_price_increment_max_price_precision_mismatch ... ok
[INFO] [stdout] test instruments::tests::notional_inverse_quote_use_quote ... ok
[INFO] [stdout] test instruments::tests::pyo3_failure_fixed_tick_zero ... ok
[INFO] [stdout] test instruments::tests::notional_linear ... ok
[INFO] [stdout] test instruments::tests::pyo3_failure_tick_scheme_unknown ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_01 ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_04 ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_05 ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_07 ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_10 ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_08 ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_02 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_01 ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_09 ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_03 ... ok
[INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_06 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_05 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_04 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_06 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_07 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_10 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_11 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_02 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_08 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_03 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_09 ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_01 ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_02 ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_03 ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_04 ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_05 ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_06 ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_09 ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_10 ... ok
[INFO] [stdout] test instruments::tests::test_instrument_class_has_expiration::case_12 ... ok
[INFO] [stdout] test instruments::tests::tick_navigation ... ok
[INFO] [stdout] test instruments::tests::tick_scheme_round_trip ... ok
[INFO] [stdout] test instruments::tests::tick_walk_limits_btcusdt_bid ... ok
[INFO] [stdout] test instruments::tests::validate_instrument_common_ok ... ok
[INFO] [stdout] test instruments::tests::tick_walk_limits_ethusdt_ask ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_07 ... ok
[INFO] [stdout] test instruments::tests::tick_walk_limits_ethusdt_bid ... ok
[INFO] [stdout] test instruments::tests::test_min_increment_precision::case_08 ... ok
[INFO] [stdout] test instruments::tests::tick_walk_limits_quanto_ask ... ok
[INFO] [stdout] test instruments::tests::validate_min_price_exceeds_max_price - should panic ... ok
[INFO] [stdout] test instruments::tests::validate_negative_margin_maint - should panic ... ok
[INFO] [stdout] test instruments::tests::validate_negative_margin_init - should panic ... ok
[INFO] [stdout] test instruments::tests::validate_negative_min_notional - should panic ... ok
[INFO] [stdout] test instruments::tests::validate_negative_max_qty - should panic ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_avalanche_effect ... ok
[INFO] [stdout] test instruments::tests::validate_non_positive_max_notional - should panic ... ok
[INFO] [stdout] test instruments::tests::tick_walk_limits_btcusdt_ask ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_deterministic ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_edge_case_patterns ... ok
[INFO] [stdout] test instruments::tests::validate_non_positive_max_price - should panic ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_01_max ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_03_min ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_02_max_minus_1 ... ok
[INFO] [stdout] test instruments::tests::validate_price_increment_precision_mismatch - should panic ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_06_u64_max_minus_1 ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_04_min_plus_1 ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_07_u64_max_plus_1 ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_10_neg_u64_max_plus_1 ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_11_zero ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_12_one ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_13_neg_one ... ok
[INFO] [stdout] test instruments::tests::validate_price_increment_min_price_precision_mismatch - should panic ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_handles_large_values ... ok
[INFO] [stdout] test instruments::tests::validate_multiple_errors - should panic ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_05_u64_max ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_handles_negative_prices ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_09_neg_u64_max_minus_1 ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_extreme_values_no_collision::case_08_neg_u64_max ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_multiples_of_2_pow_64 ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_no_collision_across_64bit_boundary ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_add_ascending_sell_orders ... ok
[INFO] [stdout] test instruments::tests::make_price_qty_fuzz ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_add_descending_buy_orders ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_add_multiple_buy_orders ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_no_collisions ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_add_multiple_sell_orders ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_add_to_same_price_level ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_book_price_bid_sorting ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_add_single_order ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_book_price_ask_sorting ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_boundary_prices ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_add_bulk_empty ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_add_bulk_orders ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_cache_consistency_after_operations ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_delete_non_existing_order ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_delete_sell_order ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_delete_buy_order ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_iter_returns_fifo ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_is_empty ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_is_empty_after_add ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_consecutive_batches_clear_between::case_1_bids ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_multi_delta_batch_keeps_best_of_final_two::case_1_bids_worst_to_best ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_f_mbp_two_delta_batch_retains_best ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_multi_delta_batch_keeps_best_of_final_two::case_2_bids_best_to_worst ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_f_mbp_without_f_last_does_not_accumulate ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_retain_best_only_cache_consistency ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_sequential_replacement_allows_price_degradation ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_consecutive_batches_clear_between::case_2_asks ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_multi_delta_batch_keeps_best_of_final_two::case_3_asks_worst_to_best ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_sequential_negative_values ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_multi_delta_batch_keeps_best_of_final_two::case_4_asks_best_to_worst ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_single_delta_batches_replace_each_other ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_snapshot_after_incomplete_mbp_stream ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_single_delta_snapshot_after_mbp_batch ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_snapshot_batch_accumulates_all_levels_asks ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_snapshot_batch_accumulates_all_levels_bids ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_snapshot_vs_mbp_different_accumulation_behavior ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_snapshot_clears_previous_batch ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_zero_size_clears_regardless_of_order_id ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l2_orders_not_affected_by_l1_fix ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_ladder_exposures_empty ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l3_order_id_collision_no_ghost_levels ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_ladder_sizes_empty ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_simulate_fills_with_empty_book ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_l1_vs_l3_different_behavior_same_order_id ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_buy_when_far_from_market::case_1 ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_buy_when_far_from_market::case_2 ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_sell_when_far_from_market ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_sell ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_sell_with_size_at_limit_of_precision ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_with_no_size::case_2 ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_with_no_size::case_1 ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_update_missing_order_inserts ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_update_buy_order_price ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_update_sell_order_size ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_update_sell_order_price ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_zero_size_l1_order_clears_top ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_zero_size_order_to_empty_ladder ... ok
[INFO] [stdout] test orderbook::level::tests::test_add_bulk_empty ... ok
[INFO] [stdout] test orderbook::level::tests::test_add_bulk_orders ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_ladder_exposures ... ok
[INFO] [stdout] test orderbook::level::tests::test_add_bulk_orders_incorrect_price - should panic ... ok
[INFO] [stdout] test orderbook::level::tests::test_add_multiple_orders ... ok
[INFO] [stdout] test orderbook::level::tests::test_add_single_order ... ok
[INFO] [stdout] test orderbook::level::tests::test_add_order_incorrect_price_level - should panic ... ok
[INFO] [stdout] test orderbook::level::tests::test_book_level_sorting ... ok
[INFO] [stdout] test orderbook::level::tests::test_comparisons_ask_side ... ok
[INFO] [stdout] test orderbook::level::tests::test_delete_nonexistent_order ... ok
[INFO] [stdout] test orderbook::level::tests::test_empty_level ... ok
[INFO] [stdout] test orderbook::level::tests::test_comparisons_bid_side ... ok
[INFO] [stdout] test orderbook::level::tests::test_delete_order ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_ladder_sizes ... ok
[INFO] [stdout] test orderbook::level::tests::test_exposure ... ok
[INFO] [stdout] test orderbook::level::tests::test_exposure_raw ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_buy ... ok
[INFO] [stdout] test orderbook::level::tests::test_exposure_raw_saturates_on_overflow ... ok
[INFO] [stdout] test orderbook::level::tests::test_fifo_order_after_updates ... ok
[INFO] [stdout] test orderbook::ladder::tests::test_update_buy_order_size ... ok
[INFO] [stdout] test orderbook::level::tests::test_insertion_order_after_mixed_operations ... ok
[INFO] [stdout] test orderbook::level::tests::test_maximum_order_id ... ok
[INFO] [stdout] test orderbook::level::tests::test_level_from_order ... ok
[INFO] [stdout] test orderbook::level::tests::test_exposure_raw_sum_saturates_on_overflow ... ok
[INFO] [stdout] test orderbook::level::tests::test_remove_nonexistent_order - should panic ... ok
[INFO] [stdout] test orderbook::level::tests::test_get_orders ... ok
[INFO] [stdout] test orderbook::level::tests::test_size ... ok
[INFO] [stdout] test orderbook::level::tests::test_remove_order_by_id ... ok
[INFO] [stdout] test orderbook::level::tests::test_size_decimal ... ok
[INFO] [stdout] test orderbook::level::tests::test_size_raw ... ok
[INFO] [stdout] test orderbook::level::tests::test_iter_returns_fifo ... ok
[INFO] [stdout] test orderbook::level::tests::test_update_order ... ok
[INFO] [stdout] test orderbook::level::tests::test_update_order_incorrect_price - should panic ... ok
[INFO] [stdout] test orderbook::level::tests::test_update_order_with_zero_size ... ok
[INFO] [stdout] test orderbook::level::tests::test_update_inserts_if_missing ... ok
[INFO] [stdout] test orderbook::level::tests::test_update_zero_size_nonexistent ... ok
[INFO] [stdout] test orderbook::tests::test_apply_delta_error_when_order_not_found_for_side_resolution ... ok
[INFO] [stdout] test orderbook::tests::test_apply_delta_resolves_side_from_asks_cache ... ok
[INFO] [stdout] test orderbook::tests::test_apply_delta_no_order_side_with_zero_order_id_for_clear ... ok
[INFO] [stdout] test orderbook::tests::test_apply_delta_resolves_side_from_bids_cache ... ok
[INFO] [stdout] test orderbook::tests::test_apply_delta_skips_update_delete_when_order_not_found ... ok
[INFO] [stdout] test orderbook::tests::test_apply_deltas_empty_clear_to_empty_book ... ok
[INFO] [stdout] test orderbook::tests::test_apply_deltas_single_clear_no_f_last ... ok
[INFO] [stdout] test orderbook::tests::test_asks_range_up_to_returns_all_at_highest_ask ... ok
[INFO] [stdout] test orderbook::tests::test_asks_range_up_to_returns_levels_at_or_below_price ... ok
[INFO] [stdout] test orderbook::tests::test_asks_range_up_to_single_exact_bottom ... ok
[INFO] [stdout] test orderbook::tests::test_bids_range_down_to_empty_when_price_above_all_bids ... ok
[INFO] [stdout] test orderbook::tests::test_bids_range_down_to_returns_all_at_lowest_bid ... ok
[INFO] [stdout] test orderbook::tests::test_bids_range_down_to_returns_levels_at_or_above_price ... ok
[INFO] [stdout] test orderbook::tests::test_bids_range_down_to_single_exact_top ... ok
[INFO] [stdout] test orderbook::tests::test_book_apply_depth ... ok
[INFO] [stdout] test orderbook::tests::test_book_apply_depth_all_levels ... ok
[INFO] [stdout] test orderbook::tests::test_book_apply_depth_empty_snapshot ... ok
[INFO] [stdout] test orderbook::tests::test_book_apply_depth_instrument_mismatch ... ok
[INFO] [stdout] test orderbook::tests::test_book_apply_depth_partial_snapshot ... ok
[INFO] [stdout] test orderbook::tests::test_book_apply_depth_updates_metadata_once ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_l1_mbp ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_multiple_crossed_each_side ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_multiple_crossed_side_specific ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_multiple_overlapping ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_not_crossed::case_1 ... ok
[INFO] [stdout] test orderbook::tests::test_asks_range_up_to_empty_when_price_below_all_asks ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_not_crossed::case_2 ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_not_crossed::case_3 ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_not_crossed::case_4 ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_side_buy_clears_bids_only ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_simple_crossed::case_1 ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_simple_crossed::case_2 ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_with_multiple_orders_per_level ... ok
[INFO] [stdout] test orderbook::tests::test_book_display ... ok
[INFO] [stdout] test orderbook::tests::test_book_empty_book_midpoint ... ok
[INFO] [stdout] test orderbook::tests::test_book_empty_book_spread ... ok
[INFO] [stdout] test orderbook::tests::test_book_empty_state ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_book_empty_own_book ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_book_with_own_orders ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_with_accepted_buffer ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_with_accepted_buffer_mixed_statuses ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_with_depth_limit ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_with_own_and_synthetic_orders ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_with_own_orders_different_level ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_with_own_orders_exact_size ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_with_own_orders_larger_size ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_with_status_filter ... ok
[INFO] [stdout] test orderbook::tests::test_book_filtered_with_synthetic_orders ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_price_for_exposure ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_price_for_exposure_no_market ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_price_for_quantity ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_price_for_quantity_no_market ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_quantity_at_level_after_delete ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_quantity_at_level_after_update ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_quantity_at_level_empty_book ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_quantity_at_level_multiple_levels ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_quantity_at_level_nonexistent_price ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_quantity_at_level_single_level ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_quantity_at_level_vs_cumulative ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_quantity_for_price ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_quantity_for_price_no_market ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_worst_price_for_quantity ... ok
[INFO] [stdout] test orderbook::tests::test_book_get_worst_price_for_quantity_no_market ... ok
[INFO] [stdout] test orderbook::tests::test_book_group_asks_filtered_empty_own_book ... ok
[INFO] [stdout] test orderbook::tests::test_book_group_asks_filtered_with_own_book ... ok
[INFO] [stdout] test orderbook::tests::test_book_group_bids_filtered_empty_own_book ... ok
[INFO] [stdout] test orderbook::tests::test_book_group_bids_filtered_with_own_book ... ok
[INFO] [stdout] test orderbook::tests::test_book_group_empty_book ... ok
[INFO] [stdout] test orderbook::tests::test_book_group_price_levels ... ok
[INFO] [stdout] test orderbook::tests::test_book_group_price_realistic ... ok
[INFO] [stdout] test orderbook::tests::test_book_group_with_depth_limit ... ok
[INFO] [stdout] test orderbook::tests::test_book_group_with_status_filter ... ok
[INFO] [stdout] test orderbook::tests::test_book_integrity_cases::case_1_valid_book ... ok
[INFO] [stdout] test orderbook::tests::test_book_integrity_cases::case_2_crossed_book ... ok
[INFO] [stdout] test orderbook::tests::test_book_integrity_cases::case_3_l1_ghost_levels_handled ... ok
[INFO] [stdout] test orderbook::tests::test_book_integrity_price_boundaries ... ok
[INFO] [stdout] test orderbook::tests::test_book_integrity_quantity_sizes::case_1_small_quantity ... ok
[INFO] [stdout] test orderbook::tests::test_book_integrity_quantity_sizes::case_2_medium_quantity ... ok
[INFO] [stdout] test orderbook::tests::test_book_integrity_quantity_sizes::case_3_large_quantity ... ok
[INFO] [stdout] test orderbook::tests::test_book_clear_stale_levels_side_sell_clears_asks_only ... ok
[INFO] [stdout] test orderbook::tests::test_book_midpoint_with_orders ... ok
[INFO] [stdout] test orderbook::tests::test_book_orderbook_creation ... ok
[INFO] [stdout] test orderbook::tests::test_book_orderbook_reset ... ok
[INFO] [stdout] test orderbook::tests::test_book_pprint ... ok
[INFO] [stdout] test orderbook::tests::test_book_single_bid_state ... ok
[INFO] [stdout] test orderbook::tests::test_book_spread_with_orders ... ok
[INFO] [stdout] test orderbook::tests::test_book_update_quote_tick_advances_sequence ... ok
[INFO] [stdout] test orderbook::tests::test_book_update_quote_tick_l1 ... ok
[INFO] [stdout] test orderbook::tests::test_book_update_trade_tick_advances_sequence ... ok
[INFO] [stdout] test orderbook::tests::test_book_update_trade_tick_l1 ... ok
[INFO] [stdout] test orderbook::tests::test_client_order_ids_after_operations ... ok
[INFO] [stdout] test orderbook::tests::test_client_order_ids_empty_book ... ok
[INFO] [stdout] test orderbook::tests::test_client_order_ids_with_orders ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_emits_after_clear_with_same_prices ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_emits_on_ask_improve ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_emits_on_bid_improve ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_emits_on_cancel_changes_bbo ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_emits_on_two_sided_book ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_multiple_bbo_changes ... ok
[INFO] [stdout] test orderbook::tests::test_book_single_ask_state ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_no_quotes_from_single_side ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_panics_on_empty - should panic ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_preserves_instrument_id ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_preserves_timestamps ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_suppresses_duplicate_bbo ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_works_with_l2_book ... ok
[INFO] [stdout] test orderbook::tests::test_get_all_crossed_levels::case_1_buy_crosses_all_asks ... ok
[INFO] [stdout] test orderbook::tests::test_get_all_crossed_levels::case_2_buy_crosses_some_asks ... ok
[INFO] [stdout] test orderbook::tests::test_get_all_crossed_levels::case_3_buy_crosses_one_ask ... ok
[INFO] [stdout] test orderbook::tests::test_get_all_crossed_levels::case_4_buy_crosses_no_asks ... ok
[INFO] [stdout] test orderbook::tests::test_get_all_crossed_levels::case_5_sell_crosses_all_bids ... ok
[INFO] [stdout] test orderbook::tests::test_get_all_crossed_levels::case_6_sell_crosses_some_bids ... ok
[INFO] [stdout] test orderbook::tests::test_get_all_crossed_levels::case_8_sell_crosses_no_bids ... ok
[INFO] [stdout] test orderbook::tests::test_get_all_crossed_levels::case_7_sell_crosses_one_bid ... ok
[INFO] [stdout] test orderbook::tests::test_l1_consecutive_snapshots_clear_between ... ok
[INFO] [stdout] test orderbook::tests::test_l1_snapshot_tardis_style_selects_best_prices ... ok
[INFO] [stdout] test orderbook::tests::test_order_book_filtered_view_book_and_own_book_instrument_mismatch ... ok
[INFO] [stdout] test orderbook::tests::test_order_book_filtered_view_optional_books ... ok
[INFO] [stdout] test orderbook::tests::test_order_book_filtered_view_preserves_metadata_when_empty ... ok
[INFO] [stdout] test orderbook::tests::test_order_book_filtered_view_with_combined_own_orders ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_audit_open_orders_no_removals ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_audit_open_orders_with_removals ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_delete_missing_order_errors ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_display ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_group_empty_book ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_group_price_levels ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_group_with_depth_limit ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_group_with_fractional_group_size ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_group_with_larger_group_size ... ok
[INFO] [stdout] test orderbook::tests::test_deltas_to_quotes_aggregates_level_sizes_for_l3 ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_group_with_status_and_buffer ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_ladder_add_update_delete ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_level_add_update_delete ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_group_with_multiple_orders_at_same_level ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_level_size_and_exposure ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_pprint ... ok
[INFO] [stdout] test orderbook::tests::test_own_book_update_missing_order_errors ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_book_add_update_delete_clear ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_book_bid_ask_quantity ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_book_bids_and_asks_as_map ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_book_combined_with_opposite_instrument_must_differ ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_book_quantity_empty_levels ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_debug ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_display ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_exposure ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_signed_size ... ok
[INFO] [stdout] test orderbook::tests::test_own_order_to_book_price ... ok
[INFO] [stdout] test orderbook::tests::test_sanitize_operations_l1_id_normalization ... ok
[INFO] [stdout] test orderbook::tests::test_sanitize_operations_skips_duplicate_adds ... ok
[INFO] [stdout] test orderbook::tests::test_status_filtering_ask_quantity ... ok
[INFO] [stdout] test orderbook::tests::test_status_filtering_asks_as_map ... ok
[INFO] [stdout] test orderbook::tests::test_status_filtering_bid_quantity ... ok
[INFO] [stdout] test orderbook::tests::test_status_filtering_bids_as_map ... ok
[INFO] [stdout] test orderbook::tests::test_to_deltas_empty_book_has_f_last_on_clear ... ok
[INFO] [stdout] test orderbook::tests::test_to_deltas_non_empty_book_has_f_last_on_last_order ... ok
[INFO] [stdout] test orders::any::tests::test_limit_order_any_conversion ... ok
[INFO] [stdout] test orders::any::tests::test_limit_order_any_limit_price ... ok
[INFO] [stdout] test orders::any::tests::test_order_any_conversion_from_events ... ok
[INFO] [stdout] test orders::any::tests::test_order_any_equality ... ok
[INFO] [stdout] test orders::any::tests::test_order_any_from_events_wrong_first_event ... ok
[INFO] [stdout] test orders::any::tests::test_passive_order_any_conversion ... ok
[INFO] [stdout] test orders::any::tests::test_order_any_from_events_empty_error ... ok
[INFO] [stdout] test orders::any::tests::test_passive_order_any_to_any ... ok
[INFO] [stdout] test orders::any::tests::test_stop_order_any_conversion ... ok
[INFO] [stdout] test orders::any::tests::test_stop_order_any_stop_price ... ok
[INFO] [stdout] test orders::any::tests::test_trailing_stop_limit_order_conversion ... ok
[INFO] [stdout] test orders::any::tests::test_trailing_stop_market_order_conversion ... ok
[INFO] [stdout] test orders::limit::tests::test_display ... ok
[INFO] [stdout] test orders::limit::tests::test_initialize ... ok
[INFO] [stdout] test orders::limit::tests::test_limit_order_creation ... ok
[INFO] [stdout] test orders::limit::tests::test_limit_order_display_quantity ... ok
[INFO] [stdout] test orders::limit::tests::test_limit_order_expire_time ... ok
[INFO] [stdout] test orders::limit::tests::test_limit_order_post_only ... ok
[INFO] [stdout] test orders::limit::tests::test_limit_order_update ... ok
[INFO] [stdout] test orders::limit::tests::test_limit_order_missing_expire_time - should panic ... ok
[INFO] [stdout] test orders::limit::tests::test_correct_expiration_with_time_in_force_gtd - should panic ... ok
[INFO] [stdout] test orders::limit_if_touched::tests::test_buy_trigger_gt_price - should panic ... ok
[INFO] [stdout] test orders::limit_if_touched::tests::test_display ... ok
[INFO] [stdout] test orders::limit::tests::test_limit_order_with_expire_time ... ok
[INFO] [stdout] test orders::limit_if_touched::tests::test_initialize ... ok
[INFO] [stdout] test orders::limit_if_touched::tests::test_limit_if_touched_order_from_order_initialized ... ok
[INFO] [stdout] test orders::limit::tests::test_positive_quantity_condition - should panic ... ok
[INFO] [stdout] test orders::limit_if_touched::tests::test_limit_if_touched_order_sets_slippage_when_filled ... ok
[INFO] [stdout] test orders::limit_if_touched::tests::test_limit_if_touched_order_update ... ok
[INFO] [stdout] test orders::limit_if_touched::tests::test_sell_trigger_lt_price - should panic ... ok
[INFO] [stdout] test orders::list::tests::test_from_orders ... ok
[INFO] [stdout] test orders::list::tests::test_from_orders_with_duplicate_client_order_ids - should panic ... ok
[INFO] [stdout] test orders::limit_if_touched::tests::test_quantity_zero - should panic ... ok
[INFO] [stdout] test orders::list::tests::test_from_orders_with_mismatched_instrument_id - should panic ... ok
[INFO] [stdout] test orders::limit_if_touched::tests::test_gtd_without_expire - should panic ... ok
[INFO] [stdout] test orders::list::tests::test_new_and_display ... ok
[INFO] [stdout] test orders::list::tests::test_new_with_duplicate_client_order_ids - should panic ... ok
[INFO] [stdout] test orders::list::tests::test_from_orders_with_mismatched_strategy_id - should panic ... ok
[INFO] [stdout] test orders::list::tests::test_order_list_equality ... ok
[INFO] [stdout] test orders::list::tests::test_order_list_first ... ok
[INFO] [stdout] test orders::list::tests::test_from_orders_with_mismatched_trader_id - should panic ... ok
[INFO] [stdout] test orders::list::tests::test_order_list_hash ... ok
[INFO] [stdout] test orders::list::tests::test_order_list_inequality ... ok
[INFO] [stdout] test orders::list::tests::test_order_list_len ... ok
[INFO] [stdout] test orders::market::tests::test_display ... ok
[INFO] [stdout] test orders::market::tests::test_gtd_condition - should panic ... ok
[INFO] [stdout] test orders::market::tests::test_market_order_creation ... ok
[INFO] [stdout] test orders::market::tests::test_market_order_from_order_initialized ... ok
[INFO] [stdout] test orders::market::tests::test_market_order_invalid_quantity - should panic ... ok
[INFO] [stdout] test orders::market::tests::test_positive_quantity_condition - should panic ... ok
[INFO] [stdout] test orders::market::tests::test_market_order_update ... ok
[INFO] [stdout] test orders::market::tests::test_stop_market_order_protection_price_update ... ok
[INFO] [stdout] test orders::market_if_touched::tests::test_display ... ok
[INFO] [stdout] test orders::market_if_touched::tests::test_initialize ... ok
[INFO] [stdout] test orders::market_if_touched::tests::test_market_if_touched_order_from_order_initialized ... ok
[INFO] [stdout] test orders::market_if_touched::tests::test_market_if_touched_order_sets_slippage_when_filled ... ok
[INFO] [stdout] test orders::market_if_touched::tests::test_market_if_touched_order_update ... ok
[INFO] [stdout] test orders::market_if_touched::tests::test_quantity_zero - should panic ... ok
[INFO] [stdout] test orders::market_to_limit::tests::test_display ... ok
[INFO] [stdout] test orders::list::tests::test_order_list_creation_with_empty_orders - should panic ... ok
[INFO] [stdout] test orders::market_if_touched::tests::test_gtd_without_expire - should panic ... ok
[INFO] [stdout] test orders::market_to_limit::tests::test_display_qty_gt_quantity - should panic ... ok
[INFO] [stdout] test orders::market_to_limit::tests::test_initialize ... ok
[INFO] [stdout] test orders::market_to_limit::tests::test_market_to_limit_order_expire_time ... ok
[INFO] [stdout] test orders::market_to_limit::tests::test_market_to_limit_order_from_order_initialized ... ok
[INFO] [stdout] test orders::market_to_limit::tests::test_market_to_limit_order_update ... ok
[INFO] [stdout] test orders::market_to_limit::tests::test_gtd_without_expire - should panic ... ok
[INFO] [stdout] test orders::market_to_limit::tests::test_quantity_zero - should panic ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_display ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_display_qty_negative_err - should panic ... ok
[INFO] [stdout] test orders::market_to_limit::tests::test_market_to_limit_order_sets_slippage_when_filled ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_gtd_without_expire_time_err - should panic ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_display_qty_gt_quantity_err - should panic ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_display_string ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_initialize ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_from_order_initialized ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_expire_time ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_post_only ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_update ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_would_reduce_only ... ok
[INFO] [stdout] test orders::stop_market::tests::test_display ... ok
[INFO] [stdout] test orders::stop_market::tests::test_display_qty_gt_quantity_err - should panic ... ok
[INFO] [stdout] test orders::stop_market::tests::test_gtd_without_expire_err - should panic ... ok
[INFO] [stdout] test orders::stop_market::tests::test_initialize ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_reduce_only ... ok
[INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_trigger_instrument_id ... ok
[INFO] [stdout] test orders::stop_market::tests::test_quantity_zero_err - should panic ... ok
[INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_from_order_initialized ... ok
[INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_is_triggered ... ok
[INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_trigger_instrument_id ... ok
[INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_protection_price_update ... ok
[INFO] [stdout] test orders::tests::test_calculate_overfill_accounts_for_existing_fills ... ok
[INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_expire_time ... ok
[INFO] [stdout] test orders::tests::test_calculate_overfill_returns_overfill_amount ... ok
[INFO] [stdout] test orders::tests::test_calculate_overfill_returns_zero_when_no_overfill ... ok
[INFO] [stdout] test orders::tests::test_calculate_overfill_with_fractional_quantities ... ok
[INFO] [stdout] test orders::tests::test_closing_side::case_1 ... ok
[INFO] [stdout] test orders::tests::test_closing_side::case_2 ... ok
[INFO] [stdout] test orders::tests::test_closing_side::case_3 ... ok
[INFO] [stdout] test orders::tests::test_different_trade_ids_allowed ... ok
[INFO] [stdout] test orders::tests::test_duplicate_fill_rejected ... ok
[INFO] [stdout] test orders::tests::test_order_accepted_after_submitted_preserves_account_id ... ok
[INFO] [stdout] test orders::tests::test_exact_fill_no_overfill ... ok
[INFO] [stdout] test orders::tests::test_order_commission_calculation ... ok
[INFO] [stdout] test orders::tests::test_order_is_child_order ... ok
[INFO] [stdout] test orders::tests::test_order_is_contingency ... ok
[INFO] [stdout] test orders::tests::test_order_is_primary ... ok
[INFO] [stdout] test orders::tests::test_order_is_spawned ... ok
[INFO] [stdout] test orders::tests::test_order_life_cycle_to_filled ... ok
[INFO] [stdout] test orders::tests::test_order_life_cycle_to_partially_filled ... ok
[INFO] [stdout] test orders::tests::test_order_opposite_side::case_1 ... ok
[INFO] [stdout] test orders::tests::test_order_opposite_side::case_2 ... ok
[INFO] [stdout] test orders::tests::test_order_opposite_side::case_3 ... ok
[INFO] [stdout] test orders::tests::test_order_state_transition_denied ... ok
[INFO] [stdout] test orders::tests::test_order_state_transition_to_canceled ... ok
[INFO] [stdout] test orders::tests::test_overfill_tracks_overfill_qty ... ok
[INFO] [stdout] test orders::tests::test_partial_fill_then_overfill ... ok
[INFO] [stdout] test orders::tests::test_partial_fill_then_overfill_with_fractional_quantities ... ok
[INFO] [stdout] test orders::tests::test_partially_filled_order_can_be_updated ... ok
[INFO] [stdout] test orders::tests::test_signed_decimal_qty::case_1 ... ok
[INFO] [stdout] test orders::tests::test_signed_decimal_qty::case_2 ... ok
[INFO] [stdout] test orders::tests::test_to_own_book_order_timestamp_ordering ... ok
[INFO] [stdout] test orders::tests::test_order_accepted_without_submitted_sets_account_id ... ok
[INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_update ... ok
[INFO] [stdout] test orders::tests::test_triggered_order_can_be_updated ... ok
[INFO] [stdout] test orders::tests::test_would_reduce_only::case_1 ... ok
[INFO] [stdout] test orders::tests::test_would_reduce_only::case_3 ... ok
[INFO] [stdout] test orders::tests::test_would_reduce_only::case_2 ... ok
[INFO] [stdout] test orders::tests::test_would_reduce_only::case_4 ... ok
[INFO] [stdout] test orders::tests::test_would_reduce_only::case_6 ... ok
[INFO] [stdout] test orders::tests::test_would_reduce_only::case_8 ... ok
[INFO] [stdout] test orders::tests::test_would_reduce_only::case_5 ... ok
[INFO] [stdout] test orders::tests::test_would_reduce_only::case_7 ... ok
[INFO] [stdout] test orders::trailing_stop_limit::tests::test_display ... ok
[INFO] [stdout] test orders::trailing_stop_limit::tests::test_initialize ... ok
[INFO] [stdout] test orders::trailing_stop_limit::tests::test_quantity_zero_err - should panic ... ok
[INFO] [stdout] test orders::trailing_stop_limit::tests::test_display_qty_gt_quantity_err - should panic ... ok
[INFO] [stdout] test orders::trailing_stop_limit::tests::test_trailing_stop_limit_order_from_order_initialized ... ok
[INFO] [stdout] test orders::trailing_stop_limit::tests::test_gtd_without_expire_err - should panic ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_display ... ok
[INFO] [stdout] test orders::trailing_stop_limit::tests::test_trailing_stop_limit_order_trigger_instrument_id ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_gtd_without_expire_err - should panic ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_display_qty_gt_quantity_err - should panic ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_initialize ... ok
[INFO] [stdout] test orders::trailing_stop_limit::tests::test_trailing_stop_limit_order_update ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_expire_time ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_from_order_initialized ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_trigger_instrument_id ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_quantity_zero_err - should panic ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_sets_slippage_when_filled ... ok
[INFO] [stdout] test position::tests::test_cache_purge_order_events ... ok
[INFO] [stdout] test position::tests::test_calculate_pnl_for_inverse1 ... ok
[INFO] [stdout] test position::tests::test_calculate_pnl_for_inverse2 ... ok
[INFO] [stdout] test position::tests::test_calculate_pnl_for_long_position_loss ... ok
[INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_update ... ok
[INFO] [stdout] test position::tests::test_calculate_pnl_for_short_position_winning ... ok
[INFO] [stdout] test position::tests::test_calculate_pnl_for_short_position_loss ... ok
[INFO] [stdout] test position::tests::test_calculate_unrealized_pnl_for_long ... ok
[INFO] [stdout] test position::tests::test_calculate_pnl_when_given_position_side_flat_returns_zero ... ok
[INFO] [stdout] test position::tests::test_calculate_unrealized_pnl_for_short ... ok
[INFO] [stdout] test position::tests::test_calculate_unrealized_pnl_for_long_inverse ... ok
[INFO] [stdout] test position::tests::test_calculate_unrealized_pnl_for_short_inverse ... ok
[INFO] [stdout] test position::tests::test_calculate_pnl_for_long_position_win ... ok
[INFO] [stdout] test position::tests::test_empty_shell_position_invariants ... ok
[INFO] [stdout] test position::tests::test_position_adjustment_floating_point_precision_edge_case ... ok
[INFO] [stdout] test position::tests::test_position_commission_affects_buy_and_sell_qty ... ok
[INFO] [stdout] test position::tests::test_position_closed_and_reopened ... ok
[INFO] [stdout] test position::tests::test_position_commission_in_base_currency_sell ... ok
[INFO] [stdout] test position::tests::test_position_commission_in_base_currency_buy ... ok
[INFO] [stdout] test position::tests::test_position_filled_with_buy_order ... ok
[INFO] [stdout] test position::tests::test_pnl_calculation_from_trading_technologies_example ... ok
[INFO] [stdout] test position::tests::test_position_commission_in_quote_currency_no_adjustment ... ok
[INFO] [stdout] test position::tests::test_position_filled_with_no_change ... ok
[INFO] [stdout] test position::tests::test_position_filled_with_buy_order_then_sell_order ... ok
[INFO] [stdout] test position::tests::test_position_filled_with_sell_order ... ok
[INFO] [stdout] test position::tests::test_position_flat_with_floating_point_precision_edge_case ... ok
[INFO] [stdout] test position::tests::test_position_filled_with_sell_order_then_buy_order ... ok
[INFO] [stdout] test position::tests::test_position_long_display ... ok
[INFO] [stdout] test position::tests::test_position_long_with_multiple_filled_orders ... ok
[INFO] [stdout] test position::tests::test_position_partial_fills_with_buy_order ... ok
[INFO] [stdout] test position::tests::test_position_partial_fills_with_two_sell_orders ... ok
[INFO] [stdout] test position::tests::test_position_perpetual_commission_no_adjustment ... ok
[INFO] [stdout] test position::tests::test_position_pnl_precision_with_high_precision_instrument ... ok
[INFO] [stdout] test position::tests::test_position_pnl_precision_with_very_small_amounts ... ok
[INFO] [stdout] test position::tests::test_position_pnl_roundtrip_precision ... ok
[INFO] [stdout] test position::tests::test_position_pnl_with_extreme_price_values ... ok
[INFO] [stdout] test position::tests::test_position_reset_clears_adjustments ... ok
[INFO] [stdout] test position::tests::test_position_realized_pnl_with_interleaved_order_sides ... ok
[INFO] [stdout] test position::tests::test_position_short_display ... ok
[INFO] [stdout] test position::tests::test_position_spot_commission_accumulation_multiple_partial_fills ... ok
[INFO] [stdout] test position::tests::test_position_spot_round_trip_close_flat_with_quote_commission ... ok
[INFO] [stdout] test position::tests::test_position_spot_sell_partial_fills_with_base_commission ... ok
[INFO] [stdout] test position::tests::test_position_with_commission_none ... ok
[INFO] [stdout] test position::tests::test_position_spot_buy_partial_fills_with_base_commission ... ok
[INFO] [stdout] test position::tests::test_position_with_commission_zero ... ok
[INFO] [stdout] test position::tests::test_purge_all_events_returns_none_for_last_event_and_trade_id ... ok
[INFO] [stdout] test position::tests::test_purge_events_for_order_clears_adjustments_on_rebuild ... ok
[INFO] [stdout] test position::tests::test_purge_events_for_order_clears_adjustments_when_flat ... ok
[INFO] [stdout] test position::tests::test_purge_events_preserves_manual_adjustments ... ok
[INFO] [stdout] test position::tests::test_revive_from_empty_shell ... ok
[INFO] [stdout] test position::tests::test_signed_decimal_qty_flat ... ok
[INFO] [stdout] test position::tests::test_signed_decimal_qty_long ... ok
[INFO] [stdout] test position::tests::test_signed_decimal_qty_short ... ok
[INFO] [stdout] test position::tests::test_signed_qty_decimal_qty_for_equity::case_1 ... ok
[INFO] [stdout] test position::tests::test_signed_qty_decimal_qty_for_equity::case_2 ... ok
[INFO] [stdout] test position::tests::test_two_trades_with_same_trade_id_error - should panic ... ok
[INFO] [stdout] test reports::fill::tests::test_clone_and_equality ... ok
[INFO] [stdout] test reports::fill::tests::test_display ... ok
[INFO] [stdout] test reports::fill::tests::test_fill_report_new_with_generated_report_id ... ok
[INFO] [stdout] test reports::fill::tests::test_fill_report_with_different_liquidity_sides ... ok
[INFO] [stdout] test reports::fill::tests::test_fill_report_with_different_order_sides ... ok
[INFO] [stdout] test reports::fill::tests::test_fill_report_new ... ok
[INFO] [stdout] test reports::fill::tests::test_has_venue_position_id ... ok
[INFO] [stdout] test reports::fill::tests::test_has_client_order_id ... ok
[INFO] [stdout] test reports::mass_status::tests::test_add_empty_reports ... ok
[INFO] [stdout] test reports::fill::tests::test_serialization_roundtrip ... ok
[INFO] [stdout] test position::tests::test_position_pnl_accumulation_across_many_fills ... ok
[INFO] [stdout] test reports::mass_status::tests::test_add_fill_reports ... ok
[INFO] [stdout] test reports::mass_status::tests::test_add_position_reports ... ok
[INFO] [stdout] test reports::mass_status::tests::test_add_multiple_fills_for_different_orders ... ok
[INFO] [stdout] test reports::mass_status::tests::test_comprehensive_mass_status ... ok
[INFO] [stdout] test reports::mass_status::tests::test_add_order_reports ... ok
[INFO] [stdout] test reports::mass_status::tests::test_clone_and_equality ... ok
[INFO] [stdout] test reports::mass_status::tests::test_empty_mass_status_accessors ... ok
[INFO] [stdout] test reports::mass_status::tests::test_display ... ok
[INFO] [stdout] test reports::mass_status::tests::test_execution_mass_status_new ... ok
[INFO] [stdout] test reports::mass_status::tests::test_execution_mass_status_with_generated_report_id ... ok
[INFO] [stdout] test reports::mass_status::tests::test_overwrite_order_reports ... ok
[INFO] [stdout] test reports::mass_status::tests::test_serialization_roundtrip ... ok
[INFO] [stdout] test reports::order::tests::test_is_order_updated_returns_false_when_all_match ... ok
[INFO] [stdout] test reports::order::tests::test_display ... ok
[INFO] [stdout] test reports::order::tests::test_clone_and_equality ... ok
[INFO] [stdout] test reports::order::tests::test_is_order_updated_returns_false_when_order_has_no_price ... ok
[INFO] [stdout] test reports::order::tests::test_is_order_updated_returns_true_when_trigger_price_differs ... ok
[INFO] [stdout] test reports::order::tests::test_is_order_updated_returns_true_when_price_differs ... ok
[INFO] [stdout] test reports::order::tests::test_is_order_updated_returns_true_when_quantity_differs ... ok
[INFO] [stdout] test reports::order::tests::test_order_status_report_different_order_types ... ok
[INFO] [stdout] test reports::order::tests::test_order_status_report_builder_methods ... ok
[INFO] [stdout] test reports::order::tests::test_order_status_report_different_statuses ... ok
[INFO] [stdout] test reports::order::tests::test_order_status_report_partial_fill ... ok
[INFO] [stdout] test reports::order::tests::test_order_status_report_with_all_timestamp_fields ... ok
[INFO] [stdout] test reports::order::tests::test_order_status_report_new ... ok
[INFO] [stdout] test reports::order::tests::test_order_status_report_with_generated_report_id ... ok
[INFO] [stdout] test reports::order::tests::test_serialization_roundtrip ... ok
[INFO] [stdout] test reports::position::tests::test_avg_px_open_none_default ... ok
[INFO] [stdout] test reports::order::tests::test_order_status_report_with_optional_fields ... ok
[INFO] [stdout] test reports::position::tests::test_avg_px_open_serialization ... ok
[INFO] [stdout] test reports::order::tests::test_is_order_updated_stop_limit_order_with_both_prices ... ok
[INFO] [stdout] test reports::position::tests::test_clone_and_equality ... ok
[INFO] [stdout] test reports::position::tests::test_different_position_sides_not_equal ... ok
[INFO] [stdout] test reports::position::tests::test_display ... ok
[INFO] [stdout] test reports::position::tests::test_avg_px_open_with_different_sides ... ok
[INFO] [stdout] test reports::position::tests::test_has_venue_position_id ... ok
[INFO] [stdout] test reports::position::tests::test_is_long ... ok
[INFO] [stdout] test reports::position::tests::test_is_flat ... ok
[INFO] [stdout] test reports::position::tests::test_position_status_report_new_long ... ok
[INFO] [stdout] test reports::position::tests::test_is_short ... ok
[INFO] [stdout] test reports::position::tests::test_position_status_report_new_short ... ok
[INFO] [stdout] test reports::position::tests::test_position_status_report_with_generated_report_id ... ok
[INFO] [stdout] test reports::position::tests::test_serialization_roundtrip ... ok
[INFO] [stdout] test reports::position::tests::test_signed_decimal_qty_calculation ... ok
[INFO] [stdout] test reports::position::tests::test_with_avg_px_open ... ok
[INFO] [stdout] test types::balance::tests::test_account_balance_debug ... ok
[INFO] [stdout] test types::balance::tests::test_account_balance_display ... ok
[INFO] [stdout] test types::balance::tests::test_account_balance_equality ... ok
[INFO] [stdout] test types::balance::tests::test_margin_balance_debug ... ok
[INFO] [stdout] test types::balance::tests::test_margin_balance_display ... ok
[INFO] [stdout] test types::balance::tests::test_margin_balance_equality ... ok
[INFO] [stdout] test types::balance::tests::test_margin_balance_new_checked_with_currency_mismatch_returns_error ... ok
[INFO] [stdout] test types::balance::tests::test_margin_balance_new_with_currency_mismatch_panics - should panic ... ok
[INFO] [stdout] test reports::position::tests::test_position_status_report_new_flat ... ok
[INFO] [stdout] test types::currency::tests::test_debug ... ok
[INFO] [stdout] test types::currency::tests::test_display ... ok
[INFO] [stdout] test types::currency::tests::test_equality ... ok
[INFO] [stdout] test types::currency::tests::test_get_or_create_crypto_idempotent ... ok
[INFO] [stdout] test types::currency::tests::test_get_or_create_crypto_new ... ok
[INFO] [stdout] test types::currency::tests::test_get_or_create_crypto_existing ... ok
[INFO] [stdout] test types::currency::tests::test_get_or_create_crypto_with_context_empty ... ok
[INFO] [stdout] test types::currency::tests::test_currency_partial_eq_only_checks_code ... ok
[INFO] [stdout] test types::currency::tests::test_get_or_create_crypto_with_context_unknown ... ok
[INFO] [stdout] test types::currency::tests::test_get_or_create_crypto_with_context_valid ... ok
[INFO] [stdout] test types::currency::tests::test_get_or_create_crypto_with_context_whitespace ... ok
[INFO] [stdout] test types::currency::tests::test_get_or_create_crypto_with_ustr ... ok
[INFO] [stdout] test types::currency::tests::test_invalid_precision - should panic ... ok
[INFO] [stdout] test types::currency::tests::test_is_crypto ... ok
[INFO] [stdout] test types::currency::tests::test_is_commodity_backed ... ok
[INFO] [stdout] test types::currency::tests::test_is_fiat ... ok
[INFO] [stdout] test types::currency::tests::test_invalid_currency_code - should panic ... ok
[INFO] [stdout] test types::currency::tests::test_is_fiat_unknown_currency ... ok
[INFO] [stdout] test types::currency::tests::test_register_no_overwrite ... ok
[INFO] [stdout] test types::currency::tests::test_register_with_overwrite ... ok
[INFO] [stdout] test types::currency::tests::test_serialization_deserialization ... ok
[INFO] [stdout] test types::currency::tests::test_try_from_str_invalid ... ok
[INFO] [stdout] test types::currency::tests::test_try_from_str_valid ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_01 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_02 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_03 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_04 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_05 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_06 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_07 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_08 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_09 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_10 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_11 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_12 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_13 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_14 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_15 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_16 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_17 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_18 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_19 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_20 ... ok
[INFO] [stdout] test types::currency::tests::test_new_for_crypto ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_21 ... ok
[INFO] [stdout] test types::currency::tests::test_new_for_fiat ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_23 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_22 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_25 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_24 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_27 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_26 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_28 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_29 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_31 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_32 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_33 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_34 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_35 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_36 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_37 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_38 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_39 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_40 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_41 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_42 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_43 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_44 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_45 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_46 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_47 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_48 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_49 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_50 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_51 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_53 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_54 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_30 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_56 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_57 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_58 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_59 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_60 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_52 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_61 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_55 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_63 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_64 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_62 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round::case_65 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_03 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_02 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_05 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_01 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_04 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_06 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_07 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_08 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_09 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_11 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_01 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_02 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_12 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_04 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_05 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_06 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_07 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_08 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_09 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_10 ... ok
[INFO] [stdout] test types::fixed::tests::test_basic_roundtrip::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_basic_roundtrip::case_2 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_matches_decimal::case_10 ... ok
[INFO] [stdout] test types::fixed::tests::test_basic_roundtrip::case_3 ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_comprehensive_collision_check ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_invalid::case_2 ... ok
[INFO] [stdout] test types::fixed::bankers_round_tests::test_bankers_round_negative_symmetry::case_03 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_at_max_precision ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_invalid::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_valid::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_invalid::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_valid::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_invalid::case_4 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_valid::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_valid::case_4 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_i64_valid::case_5 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_invalid::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_at_max_precision ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_invalid::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_invalid::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_invalid::case_4 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_invalid::case_5 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_invalid::case_6 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_valid::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_valid::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_valid::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_valid::case_5 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_01 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_02 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_03 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_04 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_05 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_06 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_07 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_08 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_09 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_10 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_12 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_13 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_14 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_16 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_17 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_18 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_19 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_11 ... ok
[INFO] [stdout] test types::fixed::tests::test_check_fixed_raw_u64_valid::case_4 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_15 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_20 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_5 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_7 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_6 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_4 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_8 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_4 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_8 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_9 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_01 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_02 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_03 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_04 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_05 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_06 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_6 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_7 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_09 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_07 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64_to_fixed::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_08 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64_to_fixed::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64_to_fixed::case_4 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_10 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64_to_fixed::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_01_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_04__2 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_05_10 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_06__10 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_02__1 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_07_100 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_08__100 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_10__1_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_01_0 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_09_1_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_03_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_5 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_04_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_05_10 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_06_100 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_08_10_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_09_100_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_10_1_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_11_10_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_12_100_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_13_1_000_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_14_10_000_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_15_100_000_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_03_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_17_10_000_000_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_18_100_000_000_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_19_1_000_000_000_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_invalid_precision ... ok
[INFO] [stdout] test types::fixed::tests::test_large_value_roundtrip::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_large_value_roundtrip::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_precision_boundaries ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_16_1_000_000_000_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_4 ... ok
[INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_5 ... ok
[INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_6 ... ok
[INFO] [stdout] test types::fixed::tests::test_rounding::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_rounding::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_rounding::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_rounding::case_4 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_02_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_07_1_000 ... ok
[INFO] [stdout] test types::fixed::tests::test_rounding::case_6 ... ok
[INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_rounding::case_5 ... ok
[INFO] [stdout] test types::fixed::tests::test_rounding::case_8 ... ok
[INFO] [stdout] test types::fixed::tests::test_rounding::case_9 ... ok
[INFO] [stdout] test types::fixed::tests::test_special_values ... ok
[INFO] [stdout] test types::fixed::tests::test_unsigned_basic_roundtrip::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_unsigned_basic_roundtrip::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_unsigned_basic_roundtrip::case_3 ... ok
[INFO] [stdout] test types::fixed::tests::test_valid_precision::case_1 ... ok
[INFO] [stdout] test types::fixed::tests::test_valid_precision::case_2 ... ok
[INFO] [stdout] test types::fixed::tests::test_rounding::case_7 ... ok
[INFO] [stdout] test orderbook::aggregation::tests::test_price_to_order_id_realistic_orderbook_prices ... ok
[INFO] [stdout] test types::money::property_tests::prop_money_comparison_consistency ... ok
[INFO] [stdout] test types::money::property_tests::prop_money_arithmetic_with_f64 ... ok
[INFO] [stdout] test types::money::property_tests::prop_money_construction_roundtrip ... ok
[INFO] [stdout] test orderbook::tests::prop_test_l1_book_operations ... ok
[INFO] [stdout] test types::money::property_tests::prop_money_decimal_conversion ... ok
[INFO] [stdout] test types::money::tests::test_add ... ok
[INFO] [stdout] test types::money::tests::test_check_positive_money::case_1 ... ok
[INFO] [stdout] test types::money::tests::test_check_positive_money::case_2 ... ok
[INFO] [stdout] test types::money::tests::test_check_positive_money::case_3 ... ok
[INFO] [stdout] test types::money::tests::test_debug ... ok
[INFO] [stdout] test types::money::tests::test_display ... ok
[INFO] [stdout] test types::money::tests::test_formatting_normal_precision::case_1 ... ok
[INFO] [stdout] test types::money::tests::test_formatting_normal_precision::case_2 ... ok
[INFO] [stdout] test types::money::tests::test_from_decimal_precision_preservation ... ok
[INFO] [stdout] test types::money::tests::test_from_decimal_rejects_out_of_range ... ok
[INFO] [stdout] test types::money::tests::test_from_decimal_rounding ... ok
[INFO] [stdout] test types::money::tests::test_from_mantissa_exponent_exact_precision ... ok
[INFO] [stdout] test types::money::tests::test_from_mantissa_exponent_excess_rounds_down ... ok
[INFO] [stdout] test types::money::tests::test_from_mantissa_exponent_excess_rounds_up ... ok
[INFO] [stdout] test types::money::tests::test_from_mantissa_exponent_large_exponent_panics - should panic ... ok
[INFO] [stdout] test types::money::tests::test_from_mantissa_exponent_overflow_panics - should panic ... ok
[INFO] [stdout] test types::money::tests::test_from_mantissa_exponent_positive_exponent ... ok
[INFO] [stdout] test types::money::tests::test_from_mantissa_exponent_very_negative_exponent_rounds_to_zero ... ok
[INFO] [stdout] test types::money::tests::test_from_mantissa_exponent_zero_with_large_exponent ... ok
[INFO] [stdout] test types::money::tests::test_from_str_invalid_input::case_1 - should panic ... ok
[INFO] [stdout] test types::money::tests::test_from_str_invalid_input::case_2 - should panic ... ok
[INFO] [stdout] test types::money::property_tests::prop_money_addition_commutative ... ok
[INFO] [stdout] test types::money::tests::test_from_str_invalid_input::case_3 - should panic ... ok
[INFO] [stdout] test types::money::tests::test_from_str_invalid_input::case_4 - should panic ... ok
[INFO] [stdout] test types::money::tests::test_from_str_scientific_notation::case_1 ... ok
[INFO] [stdout] test types::money::tests::test_from_str_scientific_notation::case_3 ... ok
[INFO] [stdout] test types::money::tests::test_from_str_scientific_notation::case_4 ... ok
[INFO] [stdout] test types::money::tests::test_from_str_valid_input::case_1 ... ok
[INFO] [stdout] test types::money::tests::test_from_str_valid_input::case_2 ... ok
[INFO] [stdout] test types::money::tests::test_from_str_valid_input::case_3 ... ok
[INFO] [stdout] test types::money::tests::test_from_str_valid_input::case_4 ... ok
[INFO] [stdout] test types::money::tests::test_from_str_with_underscores::case_1 ... ok
[INFO] [stdout] test types::money::property_tests::prop_money_negation_inverse ... ok
[INFO] [stdout] test types::money::tests::test_from_str_with_underscores::case_2 ... ok
[INFO] [stdout] test types::money::tests::test_from_str_with_underscores::case_3 ... ok
[INFO] [stdout] test types::money::tests::test_from_str_scientific_notation::case_2 ... ok
[INFO] [stdout] test types::money::tests::test_money_addition_decimal ... ok
[INFO] [stdout] test types::money::tests::test_money_addition_f64 ... ok
[INFO] [stdout] test types::money::tests::test_money_comparisons ... ok
[INFO] [stdout] test types::money::tests::test_money_different_currency_addition - should panic ... ok
[INFO] [stdout] test types::money::tests::test_money_division_decimal ... ok
[INFO] [stdout] test types::money::tests::test_money_from_raw_out_of_range_panics - should panic ... ok
[INFO] [stdout] test types::money::tests::test_money_division_f64 ... ok
[INFO] [stdout] test types::money::tests::test_money_from_str_negative ... ok
[INFO] [stdout] test types::money::tests::test_money_hash ... ok
[INFO] [stdout] test types::money::tests::test_money_multiplication_f64 ... ok
[INFO] [stdout] test types::money::tests::test_money_negation ... ok
[INFO] [stdout] test types::money::tests::test_money_is_zero ... ok
[INFO] [stdout] test types::money::tests::test_money_new_usd ... ok
[INFO] [stdout] test types::money::tests::test_money_multiplication_decimal ... ok
[INFO] [stdout] test types::money::tests::test_money_new_btc ... ok
[INFO] [stdout] test types::money::tests::test_money_subtraction_decimal ... ok
[INFO] [stdout] test types::money::tests::test_money_serialization_deserialization ... ok
[INFO] [stdout] test types::money::tests::test_sub ... ok
[INFO] [stdout] test types::money::tests::test_with_maximum_value ... ok
[INFO] [stdout] test types::money::tests::test_with_minimum_value ... ok
[INFO] [stdout] test types::money::tests::test_zero_constructor ... ok
[INFO] [stdout] test types::money::tests::test_money_subtraction_f64 ... ok
[INFO] [stdout] test types::money::property_tests::prop_money_addition_associative ... ok
[INFO] [stdout] test types::money::property_tests::prop_money_zero_identity ... ok
[INFO] [stdout] test types::price::property_tests::prop_price_arithmetic_bounds ... ok
[INFO] [stdout] test types::price::property_tests::prop_price_from_raw_round_trip ... ok
[INFO] [stdout] test types::price::property_tests::prop_price_addition_subtraction_inverse ... ok
[INFO] [stdout] test types::money::property_tests::prop_money_subtraction_inverse ... ok
[INFO] [stdout] test types::price::tests::test_basic_arithmetic ... ok
[INFO] [stdout] test types::price::tests::test_construction ... ok
[INFO] [stdout] test types::price::tests::test_decimal_arithmetic_operations ... ok
[INFO] [stdout] test types::price::tests::test_decimal_conversions ... ok
[INFO] [stdout] test types::price::tests::test_decode_raw_price_i64 ... ok
[INFO] [stdout] test types::price::tests::test_deref ... ok
[INFO] [stdout] test types::price::tests::test_equality_and_comparisons ... ok
[INFO] [stdout] test types::price::tests::test_f64_operations ... ok
[INFO] [stdout] test types::price::tests::test_from_decimal_dp_preservation ... ok
[INFO] [stdout] test types::price::tests::test_from_decimal_dp_rounding ... ok
[INFO] [stdout] test types::price::tests::test_from_decimal_excessive_precision_inference ... ok
[INFO] [stdout] test types::price::tests::test_from_decimal_infers_precision ... ok
[INFO] [stdout] test types::price::tests::test_from_decimal_negative_price ... ok
[INFO] [stdout] test types::price::tests::test_from_decimal_trailing_zeros ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_exact_precision ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_excess_rounds_down ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_excess_rounds_up ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_large_exponent_panics - should panic ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_negative_mantissa ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_overflow_panics - should panic ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_positive_exponent ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_very_negative_exponent_rounds_to_zero ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_zero ... ok
[INFO] [stdout] test types::price::tests::test_from_mantissa_exponent_zero_with_large_exponent ... ok
[INFO] [stdout] test types::price::property_tests::prop_price_string_parsing_precision ... ok
[INFO] [stdout] test types::price::tests::test_from_str_preserves_trailing_zeros::case_1 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_preserves_trailing_zeros::case_2 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_preserves_trailing_zeros::case_3 ... ok
[INFO] [stdout] test types::price::tests::test_from_raw ... ok
[INFO] [stdout] test types::price::tests::test_from_str_preserves_trailing_zeros::case_4 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_preserves_trailing_zeros::case_5 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_preserves_trailing_zeros::case_6 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_scientific_notation::case_2 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_scientific_notation::case_1 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_scientific_notation::case_3 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_with_underscores::case_1 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_with_underscores::case_2 ... ok
[INFO] [stdout] test types::price::tests::test_from_str_with_underscores::case_3 ... ok
[INFO] [stdout] test types::price::tests::test_hash ... ok
[INFO] [stdout] test types::price::tests::test_infinity_validation ... ok
[INFO] [stdout] test types::price::tests::test_invalid_precision_from_raw - should panic ... ok
[INFO] [stdout] test types::price::tests::test_invalid_precision_max - should panic ... ok
[INFO] [stdout] test types::price::tests::test_from_str_scientific_notation::case_4 ... ok
[INFO] [stdout] test types::price::tests::test_invalid_precision_min - should panic ... ok
[INFO] [stdout] test types::price::tests::test_invalid_precision_new - should panic ... ok
[INFO] [stdout] test types::price::tests::test_invalid_precision_zero - should panic ... ok
[INFO] [stdout] test types::price::tests::test_is_positive_rejects_non_positive - should panic ... ok
[INFO] [stdout] test types::price::tests::test_is_positive_rejects_undefined - should panic ... ok
[INFO] [stdout] test types::price::tests::test_max_constructor ... ok
[INFO] [stdout] test types::price::tests::test_is_positive_ok ... ok
[INFO] [stdout] test types::price::tests::test_max_value_exceeded - should panic ... ok
[INFO] [stdout] test types::price::tests::test_min_value_exceeded - should panic ... ok
[INFO] [stdout] test types::price::tests::test_mixed_precision_add ... ok
[INFO] [stdout] test types::price::tests::test_mixed_precision_sub ... ok
[INFO] [stdout] test types::price::tests::test_min_constructor ... ok
[INFO] [stdout] test types::price::tests::test_nan_validation ... ok
[INFO] [stdout] test types::price::tests::test_negative_price_in_range ... ok
[INFO] [stdout] test types::price::property_tests::prop_price_ordering_transitive ... ok
[INFO] [stdout] test types::price::tests::test_new_checked ... ok
[INFO] [stdout] test types::price::tests::test_negative_price_from_str ... ok
[INFO] [stdout] test types::price::tests::test_string_formatting ... ok
[INFO] [stdout] test types::price::tests::test_special_values ... ok
[INFO] [stdout] test types::price::tests::test_price_serde_json_round_trip ... ok
[INFO] [stdout] test types::price::tests::test_string_formatting_precision_handling::case_1 ... ok
[INFO] [stdout] test types::price::tests::test_string_formatting_precision_handling::case_2 ... ok
[INFO] [stdout] test types::price::tests::test_zero_constructor ... ok
[INFO] [stdout] test types::price::tests::test_string_parsing ... ok
[INFO] [stdout] test types::price::tests::test_string_parsing_errors ... ok
[INFO] [stdout] test types::price::property_tests::prop_price_arithmetic_associative ... ok
[INFO] [stdout] test types::price::property_tests::prop_price_serde_round_trip ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_from_raw_round_trip ... ok
[INFO] [stdout] test types::price::property_tests::prop_price_precision_information_preservation ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_arithmetic_bounds ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_addition_subtraction_inverse ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_string_parsing_precision ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_serde_round_trip ... ok
[INFO] [stdout] test types::quantity::tests::test_add ... ok
[INFO] [stdout] test types::quantity::tests::test_check_quantity_positive - should panic ... ok
[INFO] [stdout] test types::quantity::tests::test_check_quantity_positive_ok ... ok
[INFO] [stdout] test types::quantity::tests::test_comparisons ... ok
[INFO] [stdout] test types::quantity::tests::test_debug ... ok
[INFO] [stdout] test types::quantity::tests::test_debug_display_precision_handling::case_1 ... ok
[INFO] [stdout] test types::quantity::tests::test_debug_display_precision_handling::case_2 ... ok
[INFO] [stdout] test types::quantity::tests::test_decimal_arithmetic_operations ... ok
[INFO] [stdout] test types::quantity::tests::test_display ... ok
[INFO] [stdout] test types::quantity::tests::test_f64_operations ... ok
[INFO] [stdout] test types::quantity::tests::test_from_decimal_dp_preservation ... ok
[INFO] [stdout] test types::quantity::tests::test_from_decimal_dp_rounding ... ok
[INFO] [stdout] test types::quantity::tests::test_from_decimal_excessive_precision_inference ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_arithmetic_associative ... ok
[INFO] [stdout] test types::quantity::tests::test_from_decimal_infers_precision ... ok
[INFO] [stdout] test types::quantity::tests::test_from_decimal_negative_quantity_errors ... ok
[INFO] [stdout] test types::quantity::tests::test_from_decimal_trailing_zeros ... ok
[INFO] [stdout] test types::quantity::tests::test_from_i32 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_i64 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_mantissa_exponent_exact_precision ... ok
[INFO] [stdout] test types::quantity::tests::test_from_mantissa_exponent_excess_rounds_down ... ok
[INFO] [stdout] test types::quantity::tests::test_from_mantissa_exponent_large_exponent_panics - should panic ... ok
[INFO] [stdout] test types::quantity::tests::test_from_mantissa_exponent_overflow_panics - should panic ... ok
[INFO] [stdout] test types::quantity::tests::test_from_mantissa_exponent_excess_rounds_up ... ok
[INFO] [stdout] test types::quantity::tests::test_from_mantissa_exponent_positive_exponent ... ok
[INFO] [stdout] test types::quantity::tests::test_from_mantissa_exponent_zero ... ok
[INFO] [stdout] test types::quantity::tests::test_from_mantissa_exponent_very_negative_exponent_rounds_to_zero ... ok
[INFO] [stdout] test types::quantity::tests::test_from_mantissa_exponent_zero_with_large_exponent ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_errors ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_invalid_input - should panic ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_preserves_trailing_zeros::case_2 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_preserves_trailing_zeros::case_3 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_preserves_trailing_zeros::case_4 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_preserves_trailing_zeros::case_1 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_preserves_trailing_zeros::case_6 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_1 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_2 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_3 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_preserves_trailing_zeros::case_5 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_5 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_valid_input::case_1 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_valid_input::case_2 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_valid_input::case_3 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_with_underscores::case_1 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_with_underscores::case_2 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_with_underscores::case_3 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_u32 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_4 ... ok
[INFO] [stdout] test types::quantity::tests::test_from_u64 ... ok
[INFO] [stdout] test types::quantity::tests::test_hash ... ok
[INFO] [stdout] test types::quantity::tests::test_invalid_precision_from_raw - should panic ... ok
[INFO] [stdout] test types::quantity::tests::test_invalid_precision_new - should panic ... ok
[INFO] [stdout] test types::quantity::tests::test_invalid_precision_zero - should panic ... ok
[INFO] [stdout] test types::quantity::tests::test_mixed_precision_add ... ok
[INFO] [stdout] test types::quantity::tests::test_mixed_precision_mul ... ok
[INFO] [stdout] test types::quantity::tests::test_mixed_precision_sub ... ok
[INFO] [stdout] test types::quantity::tests::test_mul ... ok
[INFO] [stdout] test types::quantity::tests::test_negative_quantity_validation ... ok
[INFO] [stdout] test types::quantity::tests::test_new ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_ordering_transitive ... ok
[INFO] [stdout] test types::quantity::tests::test_new_non_zero_exceeds_max ... ok
[INFO] [stdout] test types::quantity::tests::test_new_non_zero_invalid_precision ... ok
[INFO] [stdout] test types::quantity::tests::test_new_non_zero_negative ... ok
[INFO] [stdout] test types::quantity::tests::test_new_non_zero_ok ... ok
[INFO] [stdout] test types::quantity::tests::test_new_from_str ... ok
[INFO] [stdout] test types::quantity::tests::test_new_non_zero_zero_input ... ok
[INFO] [stdout] test types::quantity::tests::test_precision ... ok
[INFO] [stdout] test types::quantity::tests::test_is_zero ... ok
[INFO] [stdout] test types::quantity::tests::test_saturating_sub ... ok
[INFO] [stdout] test types::quantity::tests::test_saturating_sub_overflow_bug ... ok
[INFO] [stdout] test types::quantity::tests::test_sub ... ok
[INFO] [stdout] test types::quantity::tests::test_to_formatted_string ... ok
[INFO] [stdout] test types::quantity::tests::test_undefined ... ok
[INFO] [stdout] test types::quantity::tests::test_with_maximum_value ... ok
[INFO] [stdout] test types::quantity::tests::test_with_minimum_positive_value ... ok
[INFO] [stdout] test types::quantity::tests::test_with_minimum_value ... ok
[INFO] [stdout] test types::quantity::tests::test_new_non_zero_rounds_to_zero ... ok
[INFO] [stdout] test types::quantity::tests::test_quantity_serde_json_round_trip ... ok
[INFO] [stdout] test types::quantity::tests::test_zero ... ok
[INFO] [stdout] test venues::tests::test_all_venue_strings ... ok
[INFO] [stdout] test venues::tests::test_venue_constants_lazy_initialization ... ok
[INFO] [stdout] test venues::tests::test_venue_constants ... ok
[INFO] [stdout] test venues::tests::test_venue_constants_uniqueness ... ok
[INFO] [stdout] test venues::tests::test_venue_constants_thread_safety ... ok
[INFO] [stdout] test venues::tests::test_venue_map_lookup_nonexistent ... ok
[INFO] [stdout] test venues::tests::test_venue_map_values_match_constants ... ok
[INFO] [stdout] test venues::tests::test_venue_map_thread_safety ... ok
[INFO] [stdout] test venues::tests::test_venue_map_contains_all_venues ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_zero_addition_identity ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_precision_information_preservation ... ok
[INFO] [stdout] test types::quantity::property_tests::prop_quantity_multiplication_non_negative ... ok
[INFO] [stdout] test orderbook::tests::prop_test_orderbook_basic_invariants ... ok
[INFO] [stdout] test orderbook::tests::prop_test_orderbook_operations ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1930 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.70s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests nautilus_model
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "997f62bf6aae00f4b532e92dfde7f8ce608bc7d406437e1b3377218de46a2fca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "997f62bf6aae00f4b532e92dfde7f8ce608bc7d406437e1b3377218de46a2fca", kill_on_drop: false }`
[INFO] [stdout] 997f62bf6aae00f4b532e92dfde7f8ce608bc7d406437e1b3377218de46a2fca
